Clever-Excel-Forum

Normale Version: VBA: Inhalte von Namensbereich löschen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo, 

ich möchte mit einem Makro gerne den Inhalt eines Zellverbundes löschen. Da dessen Position sich variieren kann, habe ich diesem Bereich einen Namen gegeben. Wie lässt sich nun zwecks Makro dieser "bennante" Bereich anwählen (und anschließend dessen Inhalt löschen)? Mein recht simpler Weg war da leider flasch:


Code:
ActiveWorkbook.Names("Fahrzeugliste").Select
    Selection.ClearContents
Jo, der war flasch! Wink
Range("Fahrzeugliste").ClearContents

Gruß Ralf
Hallo D...,

der Ansatz über "ActiveWorkbook.Names()" war schon besser als über "Range()", da ich bei Range noch das Blatt wissen muss.

Nur ist Names eine Auflistung von Namensobjekten nicht von Bereichen. Mit ActiveWorkbook.Names("...") erhälst du ein Objekt vom Typ Namen. Um an den Bereich zu kommen, musst du noch die Methode "RefersToRange" anwenden.

ActiveWorkbook.Names("Fahrzeugliste").RefersToRange.ClearContents
Range("snb") =  Application.Range("snb")

Oder du verwendest range:
Code:
  [snb].Select
  Range("snb").Select
  ActiveSheet.Range("snb").Select
  ThisWorkbook.Sheets(1).Range("snb").Select

Oder du verwendest 'Names'; und dann ist 'Referstorange' erforderlich.
Code:
ActiveSheet.Names("snb").RefersToRange.Select
  application.Names("snb").referstorange.select
  Thisworkbook.names("snb").referstorange.select
(19.01.2021, 12:58)Ego schrieb: [ -> ]der Ansatz über "ActiveWorkbook.Names()" war schon besser als über "Range()", da ich bei Range noch das Blatt wissen muss.

Moin Helmut!
Wenn Du so argumentierst, ist aber ActiveWorkbook genau so ein Nonsens!

Anders ausgedrückt:
Wenn der TE (offensichtlich) sicherstellt, dass das richtige WB aktiv ist, sollte man auch davon ausgehen, dass er dies auch mit dem Blatt macht.

Und wie snb bereits schrieb, geht dies:
Application.Range("Dingenskirchen").ClearContents

Gruß Ralf
Hallo Ralf,

zu
Zitat:Wenn Du so argumentierst, ist aber ActiveWorkbook genau so ein Nonsens!


Blush Wenn Du so argumentierst, ist aber ein benannter Bereich genau so ein Nonsens!

Wenn der TE (offensichtlich) sicherstellt, dass das richtige WB und das richhtige Blatt aktiv ist und ..., sollte man auch davon ausgehen, dass er dies auch mit dem Bereich macht. Blush

NEIN!!!!

Warum sollte ich mich, nur um einige Buchstaben weniger zu schreiben, im Programm festlegen auf welchem Blatt sich in Zukunft der benannte Bereich befindet.

ActiveWorkbook ist dann sinnvoll, wenn ich in anderen Dateien arbeite als die in der der code ist. Ansonsten würde ich ThisWorkbook nutzen.