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.WorkbooksMethode ist globalApplicationkann 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
ItemParametername(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")