web-dev-qa-db-de.com

Wie mache ich eine absolute Referenz unter Verwendung des Formats r1c1 in VBA für Excel?

Ich schreibe ein Makro für Excel mit VBA (r1c1-Format) und möchte auf eine Zelle verweisen, die sich immer in Position E3 befindet. Gibt es eine Syntax, die ich verwenden kann, um einen absoluten Verweis im Format r1c1 zu erstellen? Oder gibt es eine Möglichkeit, zu A1 und zurück zu r1c1 zu wechseln?

Ich habe überall nachgesehen und finde keine Antwort ... danke im Voraus.

13
frogjockey

Wenn ich =E3 in G5 und =$E$3 in G6 stecke und dann ein VB - Fenster starte und im nächsten Fenster folgendes mache:

? ActiveSheet.Range("G5").Formula
=E3
? ActiveSheet.Range("G5").FormulaR1C1
=R[-2]C[-2]
? ActiveSheet.Range("G6").Formula
=$E$3
? ActiveSheet.Range("G6").FormulaR1C1
=R3C5

Also machen R und C es relativ zur aktuellen Zelle. Sie müssen eckige Klammern verwenden, wenn die Zahl negativ ist. Andernfalls glaubt Excel, dass Sie eine Zahl von einem ungültigen Zellbezug subtrahieren.

EDIT: Es ist erwähnenswert, dass die Referenz anders behandelt wird, wenn sie absolut oder relativ ist. 

  • Bei relativen Referenzen zählen Sie aus der Zelle, in der sich die Formel befindet. E3 ist R[-2]C[-2] von G5 entfernt. d.h. 2 Reihen hoch, 2 Spalte links. 

  • Bei absoluten Werten zählen Sie von oben links. Also ist E3R3C5. d.h. 3 Reihen nach unten, 5 Spalten über. (Danke an @GeorgeDooling für die Klarstellung)

20
Jerry Jeremiah

Manchmal ist die Funktion 'Application.ConvertFormula' hilfreich, um zwischen Referenzstilen zu wechseln. Fügen Sie dies beispielsweise dem unmittelbaren Fenster hinzu:

debug.print application.ConvertFormula ("= PRODUKT (O7, P $ 7)", xla1, xlr1c1)

zurückgegeben: 

= PRODUKT (RC [-5], R7C [-4])

Das ist ein triviales Beispiel, aber wenn Sie eine Monsterformel auf der Hand haben ...

Das Wechseln zwischen Referenzstilen in VBA erfolgt auch über:

application.ReferenceStyle = xlA1 

oder 

application.ReferenceStyle = xlR1C1

2
dra_red

Das R1C1-Format kann sowohl für absolute als auch für relative Verweise verwendet werden R1C1 ohne Klammern ist absolut, wenn Sie Klammern verwenden, ist es relativ.

R3C5 zeigt immer auf E3, egal wo Sie es verwenden . Wie Sie bereits wissen, zeigt R[3]C[5] immer 3 nach unten und 5 rechts von Ihrem aktuellen Standort.

Wie George Dooling bereits in einem der Kommentare sagte, ist R-3C-5 sinnlos, weil Sie vom Blatt sind. Das Blatt beginnt bei R1C1 und die Zahlen steigen nur.

Zu Ihrer zweiten Frage können Sie das A1-Format verwenden, indem Sie es in Anführungszeichen setzen. R3C5 kann ohne Probleme als "E3" innerhalb von FormulaR1C1 geschrieben werden.

0
Regret

R3C5

Keine Klammern = absolut

Wenn Sie beim Bearbeiten einer Formel im Zellenfenster die Taste f4 drücken, wird zwischen relativ und absolut umgeschaltet

0
Jon