Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Workbook als Variable

Workbook als Variable
20.05.2014 10:03:35
Benjamin
Hallo zusammen,
ich habe schon viel durchsucht, aber leider doch keine Lösung für mein sicherlich kleines Problem gefunden.
Ich möchte in einer Zelle (im Blatt "Überblick", Zelle B2) den Namen einer anderen Datei (welche sich im gleichen Ordner befindet) auslesen, um diese später zu benutzen.
Mehrere Versuche habe ich unternommen:
1) Dim testWB As Workbook
With Worksheets("Überblick")
Set testWB = Workbook(ActiveWorkbook.Path & "\" & Cells(2, 2)
End With
2) Dim Datei As String
Dim testWB As Workbook
Datei = ActiveWorkbook.Worksheets("Überblick").Cells(2, 2)
Set testWB = Workbook(ActiveWorkbook.Path & "\" & Datei)
Fehlermeldung: Index außerhalb des gültigen Bereichs
Ich denke, es liegt an den verschiedenen Formaten String und Workbook?
Vielen Dank für die Hilfe!

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Workbook als Variable
20.05.2014 10:22:50
Daniel
Hi
Einer Workbook-Variablen kannst du nur ein Workbook zuweisen welches bereits geöffnet ist (dann gibt man auch nur den Namen an), oder welches man gerade öffnet:
Set testWB = Worbooks("Dateiname.xlsx")
Set testWB = Workbooks.Open("C:\pfad1\dateiname.xlsx")
Gruß Daniel

Anzeige
AW: Workbook als Variable
20.05.2014 10:31:14
Benjamin
Danke!!
;
Anzeige
Anzeige

Infobox / Tutorial

Workbook als Variable in Excel VBA nutzen


Schritt-für-Schritt-Anleitung

Um eine Workbook-Variable in Excel VBA zu definieren und zu nutzen, folge diesen Schritten:

  1. Variable deklarieren: Nutze Dim, um eine Workbook-Variable zu deklarieren.

    Dim testWB As Workbook
  2. Workbook öffnen: Wenn das Workbook bereits geöffnet ist, kannst du es so zuweisen:

    Set testWB = Workbooks("Dateiname.xlsx")

    Andernfalls, um ein Workbook zu öffnen, nutze den vollständigen Pfad:

    Set testWB = Workbooks.Open("C:\pfad1\dateiname.xlsx")
  3. Verwendung der Variable: Jetzt kannst du testWB verwenden, um auf das Workbook zuzugreifen, z.B.:

    MsgBox testWB.Name

Häufige Fehler und Lösungen

  • Fehlermeldung: Index außerhalb des gültigen Bereichs: Diese Fehlermeldung tritt auf, wenn du versuchst, auf ein Workbook zuzugreifen, das nicht geöffnet ist. Stelle sicher, dass das Workbook entweder bereits geöffnet ist oder dass du den richtigen Pfad verwendest, um es zu öffnen.

  • Falsche Verwendung von Workbook: Achte darauf, dass es Workbooks (mit „s“) heißen muss, wenn du auf ein Workbook zugreifst. Ein Beispiel, das oft falsch geschrieben wird:

    Set testWB = Workbook(ActiveWorkbook.Path & "\" & Datei) ' Falsch
    Set testWB = Workbooks.Open(ActiveWorkbook.Path & "\" & Datei) ' Richtig

Alternative Methoden

Wenn du den Namen des Workbooks dynamisch aus einer Zelle auslesen möchtest, kannst du folgendes tun:

Dim Datei As String
Dim testWB As Workbook
Datei = ActiveWorkbook.Worksheets("Überblick").Cells(2, 2).Value
Set testWB = Workbooks.Open(ActiveWorkbook.Path & "\" & Datei)

Diese Vorgehensweise ermöglicht es dir, den Dateinamen in Zelle B2 zu speichern und das Workbook basierend auf diesem Namen zu öffnen.


Praktische Beispiele

Hier ist ein praktisches Beispiel, das die oben genannten Schritte zusammenfasst:

Sub WorkbookBeispiel()
    Dim testWB As Workbook
    Dim Datei As String

    ' Dateinamen aus Zelle B2 auslesen
    Datei = ActiveWorkbook.Worksheets("Überblick").Cells(2, 2).Value

    ' Workbook öffnen
    Set testWB = Workbooks.Open(ActiveWorkbook.Path & "\" & Datei)

    ' Eine Nachricht ausgeben
    MsgBox "Das Workbook " & testWB.Name & " wurde erfolgreich geöffnet."
End Sub

Dieses Beispiel öffnet das Workbook, dessen Name in der Zelle B2 steht, und gibt den Namen des geöffneten Workbooks in einer Nachricht aus.


Tipps für Profis

  • Verwende Option Explicit: Beginne jedes Modul mit Option Explicit, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden.
  • Fehlerbehandlung: Implementiere Fehlerbehandlungsroutinen, um sicherzustellen, dass dein Code auch bei Problemen robust bleibt:
    On Error Resume Next
    Set testWB = Workbooks.Open(ActiveWorkbook.Path & "\" & Datei)
    If Err.Number <> 0 Then
      MsgBox "Fehler beim Öffnen des Workbooks."
      Err.Clear
    End If
    On Error GoTo 0

FAQ: Häufige Fragen

1. Wie kann ich überprüfen, ob ein Workbook bereits geöffnet ist?
Du kannst eine Schleife verwenden, um alle geöffneten Workbooks zu durchlaufen und den Namen zu vergleichen.

2. Was mache ich, wenn der Dateiname Leerzeichen enthält?
Stelle sicher, dass der gesamte Dateipfad korrekt eingegeben wird. Du kannst auch Anführungszeichen um den Dateinamen verwenden, wenn du ihn in einer Variablen speicherst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige