Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Excel 2003 - Makro na určenie vzťahu medzi susednými bunkami (rozdiel hodnôt)

VBA Editor spustíš cez Tools / Macro / Visual Basic Editor (Alt+F11). Po dvojitom kliknutí na meno listu zošita Excel, v ktorom chceš mať makro, môžeš začať písať samotný program. Obslužné makro pre nejakú udalosť vytvoríš buď výberom z dvoch komboboxov, ktoré sú nad miestom pre kód makra (napr. v prvom vyberieš Worksheet, v druhom Change) alebo priamo zapíšeš (Private Sub Worksheet_Change(ByVal Target As Range)).

V argumente Target je rozsah buniek, v ktorých nastala zmena. Stačí skontrolovať, či sa medzi nimi nachádza niektorá z buniek, po zmene ktorej chceš prepočítať nejaké hodnoty, a potom už len výsledok zapísať do zošita. Treba myslieť aj na to, aby sa funkcia nevolala zbytočne (alebo donekonečna) pri zmene bunky samotným makrom.

Napríklad jednoduché makro, ktoré po zmene bunky doplní o riadok nižšie hodnotu zväčšenú o jednotku, by mohlo vyzerať takto:

Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo ErrorHandler
    Application.EnableEvents = False
    
    Target.Offset(1, 0) = Target.Value + 1
    
ErrorHandler:
    Application.EnableEvents = True
End Sub

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny