VBA auf Namensmanager zugreifen
#1
Ich habe im Nemensmanager einen Bereich einer Tabelle mit dem Namen "_Beleuchtung" angelegt.
Der Bereich ist für die gesamte Arbeitsmappe freigegen.

Nun habe ich folgendes versucht:

Code:
For Each tabHG In Range("_Beleuchtung")
  MsgBox tabHG
Next tabHG

aber das klappt nicht...
Antworten Top
#2
versuchs mal so

Code:
Sub bla()

For Each tabHG In Range("_Beleuchtung")
  MsgBox tabHG
Next tabHG
End Sub
Antworten Top
#3
danke für den Hinweis.

der von mir gepostete Code-Ausschnitt steht in einem Sub.

Mein problem ist, das Excel nicht auf die im Namensmanager definierte Tabelle zugreift und ich nicht ganz verstehe warum.

Edit:

hier die Lösung (hoffe ich)

Code:
For Each tabHG In Worksheets(5).Range("_Beleuchtung")
Antworten Top
#4
Hallo s...,

wenn du über Namen anstelle von festen Adressen auf Bereiche zugreifst, brauchst du das Programm nicht verändern wenn du Zeilen oder Spalten vor den Bereichen einfügst oder löschst.

In den meisten Fällen kann man auch über "Names" anstelle über "Range" auf den Bereich zugreifen.
'ThisWorkbook.Names("_Beleuchtung").RefersToRange' ist zwar etwas mehr Schreibarbeit als 'Range("_Beleuchtung")' aber das Programm muss das Blatt nicht kennen und man kann die Bereiche auch in andere Blätter verschieben ohne das Programm ändern zu müssen.
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





Antworten Top
#5
Named Range "snb"

Code:
Sub M_snb()
  MsgBox [snb].Name
  MsgBox [snb].Parent.Name
   For Each it In [snb]
      MsgBox it
   Next
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste