Arbeitsmappe mit VBA auswählen
Auf dieser Seite wird gezeigt, wie Sie eine geöffnete Arbeitsmappe mit einer Set
-Anweisung einer Workbook
-Variablen zuweisen können.
Dies ist die bevorzugte Art der Programmierung gegenüber der Verwendung von ActiveWorkbook
(mit Select
).
Arbeitsmappe nach Name auswählen
Die Eigenschaft Item
der Sammlung Workbooks
wird verwendet, um ein einzelnes Objekt Workbook
aus der Sammlung zurückzugeben. Sie wird wie folgt aufgerufen:
Dim wb As Workbook
Set wb = Application.Workbooks.Item(Index:="Demo.xlsx")
Workbook
zu wählen, ist bereits in Excel geöffnet.
Die Sammlung Workbooks
stammt aus dem Verfahren Application.Workbooks
.
Die Prozedur Item
gibt ein Objekt vom Typ Workbook
zurück, das optional einer Variablen wb
zugewiesen wird.
Normalerweise werden Sie in Index
den Dateinamen zur Identifizierung verwenden, obwohl Sie streng genommen auch die Positionsnummer in der Sammlung verwenden könnten.
... oder kürzer:
Dim wb As Workbook
Set wb = Workbooks("Demo.xlsx")
- Weil die
Application.Workbooks
Methode ist globalApplication
kann in der Erklärung weggelassen werden. - Eine gängige Praxis bei Sammlungsgegenständen ist die Verwendung einer Kurzschrift: Statt der vollständigen
collection.Item(...)
die kürzerecollection(...)
verwendet wird. - Da es die Sache nicht klarer macht, lassen wir auch die
Item
Parametername(Index:=...)
Arbeitsmappe mit Variablennamen auswählen
In den meisten Fällen werden Sie Ihre Verfahren auf variable Dateinamen anwenden wollen.
Dazu verwenden Sie eine Variable String
, der auf irgendeine Weise ein Wert zugewiesen wird, z.B. über einen Dateiauswahldialog.
Dim strWorkbook As String: strWorkbook =
Dim wb As Workbook
Set wb = Workbooks(strWorkbook)
Arbeitsmappe und Blatt auswählen
Normalerweise werden Sie auf einem Arbeitsblatt in der Arbeitsmappe agieren wollen. Nachfolgend finden Sie ein Beispiel, wie Sie dies tun können. Siehe auch Arbeitsblatt auswählen mit VBA.
Dim strWorkbook As String: strWorkbook = "Demo.xlsx"
Dim wb As Workbook
Set wb = Workbooks(strWorkbook)
Dim ws As Worksheet
Set ws = wb.Worksheets("Data")