Benannte Felder in Excel VBA: Zelleninhalte auslesen
Schritt-für-Schritt-Anleitung
Um den Inhalt einer benannten Zelle in Excel VBA auszulesen, folge diesen Schritten:
-
Öffne den VBA-Editor:
- Drücke
ALT + F11
, um den VBA-Editor zu öffnen.
-
Füge ein neues Modul hinzu:
- Rechtsklicke im Projekt-Explorer auf deine Arbeitsmappe und wähle
Einfügen
> Modul
.
-
Gib den folgenden Code ein:
Sub ZelleninhaltAuslesen()
Dim wsName As String
Dim w As Workbook
' Ersetze "deineArbeitsmappe.xls" mit dem Namen deiner Arbeitsmappe
Set w = Workbooks("deineArbeitsmappe.xls")
' Ersetze "dasFeld" mit dem Namen deiner benannten Zelle
MsgBox w.Names("dasFeld").RefersToRange.Value
End Sub
-
Führe das Makro aus:
- Markiere das Makro und drücke
F5
, um den Zelleninhalt anzuzeigen.
Häufige Fehler und Lösungen
-
Fehler: "Name nicht gefunden"
- Überprüfe, ob der benannte Bereich korrekt erstellt wurde. Du kannst dies unter
Formeln
> Namens-Manager
prüfen.
-
Fehler: "Objekt erforderlich"
- Stelle sicher, dass du auf die richtige Arbeitsmappe zugreifst. Wenn die Arbeitsmappe nicht geöffnet ist, wird dieser Fehler angezeigt.
-
Fehler: "Typ nicht übereinstimmend"
- Achte darauf, dass der benannte Bereich tatsächlich einen Wert hat und nicht leer ist.
Alternative Methoden
Eine alternative Methode, um den Wert einer benannten Zelle auszulesen, ist die Verwendung der Evaluate
-Funktion:
Sub ZelleAuslesenMitEvaluate()
Dim zellenWert As Variant
zellenWert = Evaluate("dasFeld")
MsgBox zellenWert
End Sub
Diese Methode ist besonders nützlich, wenn du dynamische Werte aus benannten Bereichen in Formeln verwenden möchtest.
Praktische Beispiele
-
Wert einer Zelle auslesen:
Sub BeispielZelleAuslesen()
Dim wert As Variant
wert = ThisWorkbook.Names("MeinBenannteZelle").RefersToRange.Value
MsgBox "Der Wert ist: " & wert
End Sub
-
Zelleninhalt in eine andere Zelle schreiben:
Sub ZelleninhaltKopieren()
Sheets("ZielTabelle").Range("A1").Value = ThisWorkbook.Names("dasFeld").RefersToRange.Value
End Sub
Tipps für Profis
-
Benannte Bereiche verwenden: Es ist ratsam, benannte Bereiche in deinen VBA-Projekten zu verwenden, da sie den Code lesbarer machen und die Wartung erleichtern.
-
Verwendung von With
-Anweisung: Du kannst die With
-Anweisung nutzen, um mehrere Eigenschaften eines Objekts zu bearbeiten und den Code zu vereinfachen:
With ThisWorkbook.Names("dasFeld").RefersToRange
MsgBox .Value
.Offset(1, 0).Value = .Value * 2
End With
FAQ: Häufige Fragen
1. Wie kann ich den Wert einer benannten Zelle in einer anderen Arbeitsmappe auslesen?
Du musst sicherstellen, dass die andere Arbeitsmappe geöffnet ist und den richtigen Referenznamen verwenden:
Set w = Workbooks("andereArbeitsmappe.xls")
MsgBox w.Names("dasFeld").RefersToRange.Value
2. Was ist der Unterschied zwischen RefersTo
und RefersToRange
?
RefersTo
gibt den Zellbezug als Text zurück, während RefersToRange
ein Range-Objekt zurückgibt, mit dem du arbeiten kannst.
3. Wie kann ich den Zelleninhalt einer benannten Zelle in eine Variable speichern?
Du kannst dies einfach tun, indem du den Wert der benannten Zelle einer Variablen zuweist:
Dim wert As Variant
wert = ThisWorkbook.Names("dasFeld").RefersToRange.Value