VBA Zellenwert – Abrufen, setzen oder ändern
In this Article
In diesem Tutorial lernen Sie, wie Sie mithilfe von VBA mit Zellwerten interagieren.
Zellwert setzen
Um den Wert einer Zelle zu setzen, verwenden Sie die Eigenschaft Value des Objekts Range oder Cells.
Range.Value & Cells.Value
Es gibt zwei Möglichkeiten, in VBA auf Zellen zu verweisen:
- Range-Objekt – Range(„A2“).Value
- Cells-Objekt – Cells(2,1).Value
Mit dem Range-Objekt können Sie auf eine Zelle in der Standard-Notation „A1“ verweisen.
Dadurch wird der Wert des Bereichs A2 = 1 gesetzt:
Range("A2").Value = 1
Mit dem Cells-Objekt können Sie eine Zelle über die Zeilen- und Spaltennummer referenzieren.
So wird der Wert von Bereich A2 = 1 gesetzt:
Cells(2,1).Value = 1
Beachten Sie, dass Sie zuerst die Zeilennummer angegeben wird:
Cells(Zeilennummer, Spaltennummer)
Werte mehrerer Zellen auf einmal setzen
Anstatt auf eine einzelne Zelle zu verweisen, können Sie auf einen ganzen Bereich von Zellen ansprechen und ihre Zellwerte auf einmal ändern:
Range("A2:A5").Value = 1
Zellwert setzen – Text
In den obigen Beispielen haben wir den Zellwert auf eine Zahl (1) gesetzt. Stattdessen können Sie den Zellwert auf eine Textzeichenfolge setzen. In VBA muss der gesamte Text in Anführungszeichen gesetzt werden:
Range("A2").Value = "Text"
Wenn Sie den Text nicht in Anführungszeichen setzen, nimmt VBA an, dass Sie eine Variable referenzieren…
Zellwert setzen – Variable
Sie können den Wert einer Zelle einer Variablen entnehmen
Dim strText as String
strText = "Zeichenfolge aus Text"
Range("A2").Value = strText
Zellwert abrufen
Sie können Zellenwerte mit der gleichen Eigenschaft Value abrufen, die wir oben verwendet haben.
Den ActiveCell-Wert abrufen
So rufen Sie den ActiveCell-Wert ab und zeigen ihn in einem Meldungsfeld an:
MsgBox ActiveCell.Value
Zellwert einer Variablen zuweisen
So rufen Sie einen Zellenwert ab und weisen ihn einer Variablen zu:
Dim var as Variant
var = Range("A1").Value
Hier haben wir eine Variable vom Typ Variant verwendet. Variant-Variablen können jeden Werttyp annehmen. Sie könnten stattdessen auch eine Variable vom Typ String verwenden:
Dim var as String
var = Range("A1").Value
Ein Variablentyp vom Typ String akzeptiert numerische Werte, speichert diese jedoch als Text.
Wenn Sie wissen, dass Ihr Zellwert numerisch sein wird, können Sie einen Double-Variablen-Typ verwenden (Double-Variablen können Dezimalwerte speichern):
Dim var as Double
var = Range("A1").Value
Wenn Sie jedoch versuchen, einen Zellwert, der Text enthält, in einer Double-Variablen zu speichern, erhalten Sie eine Fehlermeldung für eine Typen-Unverträglichkeit:
Andere Beispiele für Zellwerte
Zellwert kopieren
Es ist einfach, einen Zellwert von einem anderen Zellwert zu übernehmen (oder einen Zellwert zu „kopieren“):
Range("A1").Value = Range("B1").Value
Sie können dies sogar mit ganzen Bereichen von Zellen tun (die Bereiche müssen dabei dieselbe Größe aufweisen):
Range("A1:A5").Value = Range("B1:B5").Value
Zellwerte miteinander vergleichen
Sie können Zellwerte mit den Standard-Vergleichsoperatoren vergleichen.
Testen Sie, ob die Zellwerte gleich sind:
MsgBox Range("A1").Value = Range("B1").Value
Gibt TRUE zurück, wenn die Zellwerte gleich sind, anderenfalls FALSE.
Sie können auch eine If-Anweisung erstellen, um Zellwerte zu vergleichen:
If Range("A1").Value > Range("B1").Value Then
Range("C1").Value = "Größer als"
Elseif Range("A1").Value = Range("B1").Value Then
Range("C1").Value = "Gleich"
Else
Range("C1").Value = "Kleiner als"
End If
Auf die gleiche Weise können Sie Text vergleichen (denken Sie daran, dass VBA zwischen Groß- und Kleinschreibung unterscheidet)