In diesem Tutorial erfahren Sie, wie Sie mit VBA mit Zellenwerten interagieren.
Zellenwert festlegen
Um einen Zellenwert festzulegen, verwenden Sie die Value-Eigenschaft des Range- oder Cells-Objekts.
Bereich.Wert & Zellen.Wert
Es gibt zwei Möglichkeiten, Zellen in VBA zu referenzieren:
- Bereichsobjekt - Bereich ("A2").Wert
- Zellen-Objekt - Zellen(2,1).Wert
Mit dem Range-Objekt können Sie eine Zelle mit der Standardnotation „A1“ referenzieren.
Dadurch wird der Wert des Bereichs A2 = 1 gesetzt:
1 | Bereich("A2").Wert = 1 |
Mit dem Cells-Objekt können Sie eine Zelle anhand ihrer Zeilennummer und Spaltennummer referenzieren.
Dadurch wird der Wert von Bereich A2 = 1 gesetzt:
1 | Zellen(2,1).Wert = 1 |
Beachten Sie, dass Sie zuerst die Zeilennummer eingeben:
1 | Zellen(Zeile_num, Spalte_num) |
Legen Sie die Werte mehrerer Zellen gleichzeitig fest
Anstatt auf eine einzelne Zelle zu verweisen, können Sie auf einen Zellbereich verweisen und alle Zellwerte gleichzeitig ändern:
1 | Bereich("A2:A5").Wert = 1 |
Zellenwert festlegen - Text
In den obigen Beispielen setzen wir den Zellenwert gleich einer Zahl (1). Stattdessen können Sie den Zellenwert gleich einer Textzeichenfolge festlegen. In VBA muss der gesamte Text von Anführungszeichen umgeben sein:
1 | Range("A2").Value = "Text" |
Wenn Sie den Text nicht in Anführungszeichen setzen, denkt VBA, dass Sie auf eine Variable verweisen…
Zellenwert festlegen – variabel
Sie können auch einen Zellenwert gleich einer Variablen setzen
1234 | Dim strText als StringstrText = "Textzeichenfolge"Range("A2").Value = strText |
Zellenwert abrufen
Sie können Zellenwerte mit derselben Value-Eigenschaft abrufen, die wir oben verwendet haben.
ActiveCell-Wert abrufen
So rufen Sie den ActiveCell-Wert ab und zeigen ihn in einem Meldungsfeld an:
1 | MsgBox ActiveCell.Value |
Zellenwert der Variablen zuweisen
So rufen Sie einen Zellenwert ab und weisen ihn einer Variablen zu:
123 | Dim var als Variantevar = Range("A1").Wert |
Hier haben wir eine Variable vom Typ Variant verwendet. Variant-Variablen können alle Arten von Werten annehmen. Stattdessen könnten Sie einen String-Variablentyp verwenden:
123 | Dim var als Stringvar = Range("A1").Wert |
Ein String-Variablentyp akzeptiert numerische Werte, speichert die Zahlen jedoch als Text.
Wenn Sie wissen, dass Ihr Zellenwert numerisch ist, können Sie einen Double-Variablentyp verwenden (Double-Variablen können Dezimalwerte speichern):
123 | Dim var als Doublevar = Range("A1").Wert |
Wenn Sie jedoch versuchen, einen Zellenwert mit Text in einer Double-Variablen zu speichern, erhalten Sie einen Typkonfliktfehler:
Andere Beispiele für Zellenwerte
Zellenwert kopieren
Es ist einfach, einen Zellenwert einem anderen Zellenwert gleichzusetzen (oder einen Zellenwert zu „kopieren“):
1 | Range("A1").Value = Range("B1").Value |
Sie können dies sogar mit Zellbereichen tun (die Bereiche müssen die gleiche Größe haben):
1 | Bereich("A1:A5").Wert = Bereich("B1:B5").Wert |
Zellenwerte vergleichen
Sie können Zellenwerte mit den Standardvergleichsoperatoren vergleichen.
Testen Sie, ob die Zellenwerte gleich sind:
1 | MsgBox Range("A1").Value = Range("B1").Value |
Gibt TRUE zurück, wenn die Zellenwerte gleich sind. Ansonsten FALSCH.
Sie können auch eine If-Anweisung erstellen, um Zellenwerte zu vergleichen:
12345678910111213 | Wenn Range("A1").Value > Range("B1").Value ThenRange("C1").Value = "Größer als"Sonst Range("A1").Value = Range("B1").Value ThenRange("C1").Value = "Gleich"AndersRange("C1").Value = "Weniger als"Ende Wenn |
Sie können Text auf die gleiche Weise vergleichen (denken Sie daran, dass bei VBA die Groß-/Kleinschreibung beachtet wird)