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

Forumthread: VBA Array mit Worksheets aus verschiedenen Dateien

VBA Array mit Worksheets aus verschiedenen Dateien
22.06.2015 07:57:47
Crizz
Hallo Forumsmitglieder,
ich habe ein Probmlem beim füllen eines Arrays mit worksheets aus verschiedenen Dateien.
Beim ausführen wird immer das letzte Feld gelb markiert

  • Set wksSteuer = ActiveWorkbook.Worksheets("Steuerung")
    'Zugriff auf Daten von CSIM Gruppen C, NX & Komponenten
    Set wkb_Q1 = Workbooks.Open(Filename:=wksSteuer.Range("C6").Text, ReadOnly:=True)
    Set wks_Q1 = wkb_Q1.Worksheets(2)
    'Zugriff auf Daten von CSIM Gruppe Lieferanten- Support
    Set wkb_Q2 = Workbooks.Open(Filename:=wksSteuer.Range("C10").Text, ReadOnly:=True)
    Set wks_Q2 = wkb_Q2.Worksheets(1)
    'Array mit Worksheets füllen
    wksQuelle = Array(wks_Q1, wks_Q2)
    For anzahlSheets = 1 To 2
    DatenQuelle = wksQuelle(anzahlSheets)

  • Kann mir da jemand weiterhelfen wie man das lösen kann?
    Die ganze Datei füge ich als Anhang bei
    https://www.herber.de/bbs/user/98364.xlsm
    Vielen Dank im Voraus
    Chris

    Anzeige

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

    Betreff
    Datum
    Anwender
    Anzeige
    AW: VBA Array mit Worksheets aus verschiedenen Dateien
    22.06.2015 09:24:15
    Nepumuk
    Hallo,
    so:
    Set DatenQuelle = wksQuelle(anzahlSheets)
    

    Gruß
    Nepumuk

    AW: VBA Array mit Worksheets aus verschiedenen Dateien
    22.06.2015 14:55:59
    Crizz
    Danke! es klappt endlich
    Gruß Chris
    Anzeige
    ;
    Anzeige
    Anzeige

    Infobox / Tutorial

    VBA-Arrays mit Worksheets aus verschiedenen Dateien nutzen


    Schritt-für-Schritt-Anleitung

    Um ein Array mit Worksheets aus verschiedenen Dateien in VBA zu erstellen, gehe folgendermaßen vor:

    1. Öffne die benötigten Arbeitsmappen: Stelle sicher, dass die Arbeitsmappen, aus denen Du die Worksheets importieren möchtest, geöffnet sind.

    2. Definiere die Variablen: Du musst Variablen für deine Worksheets und das Array definieren. Beispiel:

      Dim wksSteuer As Worksheet
      Dim wkb_Q1 As Workbook
      Dim wkb_Q2 As Workbook
      Dim wks_Q1 As Worksheet
      Dim wks_Q2 As Worksheet
      Dim wksQuelle() As Worksheet
    3. Setze die Arbeitsblätter: Weise die Worksheets den Variablen zu. Beispiel:

      Set wksSteuer = ActiveWorkbook.Worksheets("Steuerung")
      Set wkb_Q1 = Workbooks.Open(Filename:=wksSteuer.Range("C6").Text, ReadOnly:=True)
      Set wks_Q1 = wkb_Q1.Worksheets(2)
      Set wkb_Q2 = Workbooks.Open(Filename:=wksSteuer.Range("C10").Text, ReadOnly:=True)
      Set wks_Q2 = wkb_Q2.Worksheets(1)
    4. Fülle das Array: Verwende die Array-Funktion, um die Worksheets zu speichern.

      wksQuelle = Array(wks_Q1, wks_Q2)
    5. Verwende das Array: Greife auf die einzelnen Worksheets im Array zu, um Daten zu bearbeiten oder zu analysieren.

      For anzahlSheets = LBound(wksQuelle) To UBound(wksQuelle)
          DatenQuelle = wksQuelle(anzahlSheets)
          ' Hier kannst Du weitere Operationen durchführen
      Next anzahlSheets

    Häufige Fehler und Lösungen

    • Fehler beim Zugriff auf das Array: Stelle sicher, dass Du das Array richtig indizierst. Verwende LBound und UBound, um die Grenzen des Arrays zu bestimmen.
    • Letztes Feld wird gelb markiert: Achte darauf, dass Du die richtige Variable für DatenQuelle im Array verwendest. Der korrekte Befehl lautet:
      Set DatenQuelle = wksQuelle(anzahlSheets)

    Alternative Methoden

    Neben der Verwendung von VBA-Arrays gibt es auch alternative Methoden zur Handhabung von Sheets in Excel:

    • Verwendung von Collections: Anstatt Arrays zu nutzen, kannst Du auch eine Collection verwenden, die eine flexiblere Datenstruktur bietet.

      Dim wksColl As New Collection
      wksColl.Add wks_Q1
      wksColl.Add wks_Q2
    • Direkter Zugriff über Worksheets: Du kannst auch direkt über den Namen des Worksheets auf die Daten zugreifen, ohne ein Array zu verwenden.


    Praktische Beispiele

    Hier ist ein einfaches Beispiel, das die Verwendung eines vba worksheet array demonstriert:

    Sub BeispielArray()
        Dim wksQuelle() As Worksheet
        Dim i As Integer
    
        ' Worksheets hinzufügen
        wksQuelle = Array(Sheets("Tabelle1"), Sheets("Tabelle2"))
    
        ' Durch das Array iterieren
        For i = LBound(wksQuelle) To UBound(wksQuelle)
            Debug.Print wksQuelle(i).Name
        Next i
    End Sub

    Tipps für Profis

    • Nutze Option Explicit: Damit stellst Du sicher, dass alle Variablen deklariert sind. Das hilft, Fehler zu vermeiden.
    • Optimierung der vba länge array: Achte darauf, dass Du nur die benötigten Worksheets in deinem Array speicherst, um die Leistung zu verbessern.
    • Fehlerbehandlung implementieren: Verwende On Error Resume Next und On Error GoTo 0, um Fehler während des Öffnens von Dateien zu behandeln.

    FAQ: Häufige Fragen

    1. Wie viele Worksheets kann ich in ein Array speichern?
    Es gibt keine feste Grenze, aber die maximale Anzahl hängt von der verfügbaren Speicherkapazität und der Excel-Version ab.

    2. Was kann ich tun, wenn das Array leer ist?
    Überprüfe, ob die Arbeitsmappen korrekt geöffnet sind und die richtigen Worksheet-Namen verwendet werden.

    3. Kann ich auch andere Datentypen im Array speichern?
    Ja, Du kannst im Array beliebige Datentypen speichern, jedoch ist es empfehlenswert, bei Worksheets zu bleiben, um die Übersichtlichkeit zu wahren.

    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