Zápis vzorců do tabulky pomocí kódu VBA
Zápis složitějších vzorců do tabulky pomocí kódu VBA je pěkná dřina když neznáte fintu, kterou se v žádné učebnici ani od žádného lektora nedozvíte. To je know how z praxe. Marně se neříká: kdo to umí ten to dělá, kdo to neumí ten to učí.
Ukázku zápisu vzorců si ukážeme na primitivním příkladu. Máme jednoduchou tabulku do kteé postupně připisujeme název zboží, jednotkovou cenu a množství. Chceme ve sloupci cena mít vzorec, který jí spočítá. Nechť může mít tabulka už milion řádků.
Sub Makro1()
'
' Makro1 Makro
' Makro zaznamenané 22.1.2014,
Dell
'
'
Range("D2").Select
ActiveCell.FormulaR1C1 =
"=RC[-2]*RC[-1]"
Range("D3").Select
End Sub
Private Sub Worksheet_Change(ByVal
Target As Range)
'tato udalost nastane kdyz
zapiseme do nejake bunky listu
'cislo radku a sloupce zmenene bunky do promennych
r = Target.Row
s = Target.Column
'testuji zda radek bunky do ktere
pisu je vetsi nez 1 a sloupec je C
If r > 1 And s = 3 Then
'kdyz ve zmenene bunce neni
cislo, ukonci udalost
If Not IsNumeric(Target) Then
Exit Sub
'testuji zda bunka kterou
menime neco obsahuje nebo je prazdna
If CStr(Target) <>
"" Then
'bunka neni prazdna, do sloupce D
zapis vzorec
Cells(r, 4) = "=RC[-2]*RC[-1]"
Else
'bunka je prazdna vymaz
vzorec ve sloupci D
Cells(r, 4) = ""
End If
End If
End Sub