Możliwość korzystania z funkcji Excela w edytorze makr jest dobrodziejstwem. Z poziomu VBA możemy wstawiać do komórek arkusza różne formuły. W jaki sposób zrobić to najskuteczniej? Z pomocą przychodzi nam notacja R1C1. Sprawdź jaka jest jej najważniejsza zaleta.
Formuła zwykła vs. CSE
Do zakresu B2:B10 i C2:C10 wstawiam formułę, która sprawdza czy komórka z tego samego wiersza pierwszej kolumny jest pusta.
W przypadku kolumny B korzystam ze zwykłej funkcji, natomiast do kolumny C dodaję formułę tablicową.
Kod makra
Kod wykonujący to zadanie mieści się w jednej linijce. To jeszcze bardziej potwierdza fakt, że wprowadzanie formuł makrem jest prostą sprawą.
1 2 3 4 5 6 7 8 9 10 11 |
Sub WstawFormulyDoKomorek() 'Wstaw zwykłą formułę do dziewięciu komórek naraz Sheet1.Range("B2:B10").FormulaR1C1 = "=ISBLANK(RC1)" 'Wstaw formułę tablicową do dziewięciu komórek naraz Sheet1.Range("C2:C10").FormulaArray = "=ISBLANK(R2C1:R10C1)" End Sub |
Formuła zwykła
W pierwszym przypadku korzystam z nieco przestarzałego, ale bardzo elastycznego sposobu. Notacja R1C1 pozwala wstawić jedną, taką samą formułę do wielu komórek. Nie trzeba jej w żaden sposób modyfikować.
Jeżeli zmienimy w arkuszu sposób wyświetlania odwołań z A1 na R1C1, zobaczymy, że w zakresie B2:B10 znajduje się taka sama formuła.
Formuła tablicowa
Notacja R1C1 pomogła mi również w drugim przykładzie. Tym razem wynik zwracany jest w formie tablicy do zakresu komórek C2:C10.
W takiej sytuacji musimy poinformować Excela, że jest to formuła tablicowa i należy skorzystać z właściwości FormulaArray – Excel sam wstawi klamry {…}.