Jak korzystać z formułyr1c1 w vba (z przykładami)
Możesz użyć właściwości FormulaR1C1 w VBA, aby utworzyć odwołanie bezwzględne lub względne do określonej komórki w arkuszu.
Istnieją dwa typowe sposoby korzystania z tej właściwości:
Metoda 1: Użyj wzoru R1C1, aby utworzyć odniesienie bezwzględne
Sub MultipyCell()
Range(" C5 ").FormulaR1C1 = " =R1C1*20 "
End Sub
Po uruchomieniu tego konkretnego makra komórka C5 wyświetli wynik komórki w wierszu 1 i kolumnie 1 pomnożony przez 20.
Metoda 2: Użyj wzoru R1C1, aby utworzyć odniesienie względne
Sub MultipyCell()
Range(" C5 ").FormulaR1C1 = " =R[-4]C[-2]*20 "
End Sub
Po uruchomieniu tego konkretnego makra komórka C5 wyświetli wynik z komórki 4 wiersze powyżej i 2 kolumny po jej lewej stronie pomnożony przez 20.
Poniższe przykłady pokazują, jak w praktyce zastosować każdą metodę z arkuszem Excel zawierającym wartość 10 w komórce A1 :
Przykład 1: Użyj wzoru R1C1, aby utworzyć odniesienie bezwzględne
Możemy utworzyć następujące makro, aby pomnożyć wartość komórki w wierszu 1 i kolumnie 1 przez 20 i wyświetlić wyniki w komórce C5 :
Sub MultipyCell()
Range(" C5 ").FormulaR1C1 = " =R1C1*20 "
End Sub
Kiedy uruchomimy to makro, otrzymamy następujące dane wyjściowe:
Widzimy, że Excel użył formuły =$A$1*20 do obliczenia wyniku w komórce C5 .
Ponieważ w naszej formule w VBA użyliśmy R1C1 , zrobiliśmy bezwzględne odwołanie do komórki w pierwszym wierszu i pierwszej kolumnie, czyli do komórki A1 .
Przykład 2: Użyj wzoru R1C1, aby utworzyć odniesienie względne
Możemy utworzyć następujące makro, aby pomnożyć wartość komórki znajdującej się 4 wiersze powyżej i 2 kolumny na lewo od komórki C5 przez 20 i wyświetlić wyniki w komórce C5 :
Sub MultipyCell()
Range(" C5 ").FormulaR1C1 = " =R[-4]C[-2]*20 "
End Sub
Kiedy uruchomimy to makro, otrzymamy następujące dane wyjściowe:
Widzimy, że Excel użył formuły =A1*20 do obliczenia wyniku w komórce C5 .
Ponieważ w naszej formule w VBA użyliśmy nawiasów z R[-4]C[-2] , zrobiliśmy względne odniesienie do komórki znajdującej się 4 wiersze powyżej i 2 kolumny na lewo od komórki C5 , czyli komórki A1 .
Uwaga : Pełną dokumentację właściwości VBA FormulaR1C1 można znaleźć tutaj .
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w VBA:
VBA: prosta formuła na „Jeśli komórka zawiera”
VBA: Jak liczyć wystąpienia znaków w ciągu
VBA: jak sprawdzić, czy ciąg zawiera inny ciąg