Verwenden von R1C1-Formelreferenzen in einem Makro (Microsoft Excel)
Gerry findet es am einfachsten, Formeln zusammenzustellen, die R1C1-Zellreferenzen verwenden. Sie weiß, wie dies beim manuellen Hinzufügen von Formeln zu einem Arbeitsblatt zu tun ist, fragt sich jedoch, wie sie R1C1-Referenzen in Formeln verwenden kann, die sie zusammensetzt und mithilfe eines Makros in Zellen einfügt. Sie fragt sich, ob sie dabei auf etwas achten muss.
Wenn Sie normalerweise eine Formel in eine Zelle einfügen, verwenden Sie diese Art von Syntax in Ihrem Makro:
Cells(3,1).Formula = "=A1 + A2" Range("A3").Formula = "=A1 + A2"
Beides wird gut funktionieren; Beide füllen eine einfache Formel in Zelle A3. Wenn Sie jedoch R1C1-Referenzen in der Formel verwenden möchten, die Sie in Zelle A3 einfügen, müssen Sie nur die Formula-Eigenschaft in die FormulaR1C1-Eigenschaft ändern:
Cells(3,1).FormulaR1C1 = "=R1C1 + R2C1" Range("A3").FormulaR1C1 = "=R1C1 + R2C1"
Es ist interessant festzustellen, dass Excel die Formel so konvertiert, dass sie die aktive Anzeige widerspiegelt, wenn Sie die obigen R1C1-Formeln in eine Zelle einfügen und das Arbeitsblatt die R1C1-Anzeige nicht aktiviert hat. Mit anderen Worten, es ändert automatisch „= R1C1 + R2C1“ in „= $ A $ 1 + $ A $ 2“. Das Gegenteil ist auch der Fall: Platzieren Sie die Formel „= A1 + A2“ in einer Zelle und sie wird als „= R [-2] C + R [-1] C“ angezeigt, wenn Sie die Anzeige R1C1 aktiviert haben.
Da sowohl Formula als auch FormulaR1C1 Eigenschaften sind, können Sie diese auch lesen und die Formel in der Zelle im gewünschten Format anzeigen. Angenommen, Zelle A3 enthält die Formel „= A1 + A2“. Wenn Sie dann das folgende Makro ausführen, wird die Formel in den gewünschten Formaten angezeigt:
Sub TestFormula() Dim sMsg As String sMsg = "Regular format: " & Cells(3,1).Formula & vbCrLf sMsg = sMsg & "R1C1 format: " & Range("A3").FormulaR1C1 MsgBox sMsg End Sub
ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.
Dieser Tipp (5294) gilt für Microsoft Excel 2007, 2010, 2013, 2016, 2019 und Excel in Office 365.