Sie wollen in #VBA einen #Bereich eines #Excel-#Arbeitsblatts „ansprechen“ – ich erzähl Ihnen dazu mehr:
Wenn Sie – wie gestern beschrieben – Cells(Zeile, Spalte) oder Range(Adresse) verwenden, dann verwenden Sie automatisch die Zelle im gerade aktiven Arbeitsblatt in der „oben liegenden“ Arbeitsmappe.
Das heißt: wenn Sie (als Benutzerin) die Arbeitsmappe oder das Blatt wechseln, während Ihr Code läuft, dann landen Ihre Ergebnisse womöglich ganz woanders als Sie vorhatten.
Sie können dem abhelfen, indem Sie das Bereichs-Objekt weiter qualifizieren:
Worksheets("Tabelle 1").Cells(1,2)
ist die Zelle B1 auf dem Blatt Tabelle 1. Egal, ob jemand ein anderes Blatt angeklickt hat. Und in der gerade aktiven Arbeitsmappe – steht ja nichts anderes da.
Workbooks("meine Arbeitsmappe.xlsx").Worksheets("Tabelle 1").Cells(1,2)
ist die Zelle B1 auf dem Blatt Tabelle 1 in der Arbeitsmappe meine Arbeitsmappe.
Wenn die angegebene Arbeitsmappe nicht offen ist oder sie zwar offen ist, aber es das Blatt mit dem angegebenen Namen nicht gibt, dann kommt ein Fehler:
Was?
Na ja: Workbooks und Worksheets sind sogenannte Auflistungs-Objekte, das heißt konkret: Workbooks ist die Menge aller offenen Arbeitsmappen. Worksheets ist die Menge aller Tabellenblätter in der angegebenen Arbeitsmappe (und wenn keine angegeben ist, dann in der gerade aktiven). Und um ein einziges Element aus so einer Auflistung herauszupicken, brauchen Sie einen Index. Das ist hier der Name des Elements, und wenn der nicht gefunden wird, dann „zeigt“ der Index „außerhalb“ hin.
Pingback: eine #Zeile mit #VBA | Soprani Software
Pingback: #Excel #Bereich in #VBA ansprechen | Soprani Software
Pingback: I #Me Mine – #werbinich in #VBA | Soprani Software