Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Benanntes Feld - Inhalt der Zelle in VBA auslesen?

Benanntes Feld - Inhalt der Zelle in VBA auslesen?
08.03.2006 10:49:22
jan
Guten Tag alle zusammen,
ich habe ein scheinbar einfach zu lösendes Problem in VBA für Excel2000. Ich möchte den Wert eines benannten Feldes auslesen. Ich habe in einer Arbeitsmappe, die nicht notwendigerweise die aktive ist, ein Feld benannt. Den Wert dieses Feldes möchte ich auslesen. Über Workbooks(i).Names("dasFeld").Value komme ich an die A1-Syntax mit Arbeitsplatt und Zellenbezug, aber wie bekomme ich den Wert? Ich habe es bereist über eine Find-Funktion versucht, bekomme dabei aber leider nie das richtige Ergebnis.
Beste Grüße und Danke für jegliche Anregung,
jan
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Benanntes Feld - Inhalt der Zelle in VBA auslesen?
08.03.2006 11:02:22
UweD
Hallo
so...

Sub Makro2()
'festgelegter Name lautet 'Test'
MsgBox Sheets("Tabelle1").Range("Test")
End Sub

Gruß UweD
(Rückmeldung wäre schön)
AW: Benanntes Feld - Inhalt der Zelle in VBA auslesen?
08.03.2006 11:03:07
u_
Hallo,
=Range("dasFeld")
Gruß
Geist ist geil!
AW: Benanntes Feld - Inhalt der Zelle in VBA auslesen?
08.03.2006 11:08:57
IngGi
Hallo Jan,
Range("A20") = _
Sheets(Left(ThisWorkbook.Names("MeineZelle"), _
InStr(1, ThisWorkbook.Names("MeineZelle"), "!") - 1)).Range("MeineZelle")
Gruß Ingolf
Anzeige
AW: Benanntes Feld - Inhalt der Zelle in VBA ausle
08.03.2006 11:15:45
jan
Ah super, die anderen beiden Antworten haben nicht ganz den Kern getroffen, da sie darauf vertraut haben, dass ich das Tabellenblatt kenne. So funktioniert es (da hätt ich auch selber draufkommen können). Grosse Klasse und Danke an alle.
jan
AW: Benanntes Feld - Inhalt der Zelle in VBA ausle
08.03.2006 11:37:08
jan
Nur zur Vervollständigung, hier jetzt die gesamte Funktion
w.Worksheets(Mid(ActiveWorkbook.Names(wsName), 2, _
InStr(1, ActiveWorkbook.Names(wsName), "!") - 2)).Range(wsName).Value
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

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:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Rechtsklicke im Projekt-Explorer auf deine Arbeitsmappe und wähle Einfügen > Modul.
  3. 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
  4. 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

  1. Wert einer Zelle auslesen:

    Sub BeispielZelleAuslesen()
       Dim wert As Variant
       wert = ThisWorkbook.Names("MeinBenannteZelle").RefersToRange.Value
       MsgBox "Der Wert ist: " & wert
    End Sub
  2. 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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige