kennt jemand ein einfaches Skript, mit dem man alle Files aus einem Ordner in ein Array packen kann?
Gruß und Dank,
Born
Option Explicit
Sub TestLeseDaten1(myAr(), strPfad As String, AA As Long)
Dim sFiles As String
Redim Preserve myAr(100000) 'Area groß genug für 100001 Dateien
sFiles = Dir$(strPfad & "*.*")
Do While sFiles <> ""
myAr(AA) = sFiles
AA = AA + 1
sFiles = Dir$()
Loop
If AA > 0 Then
Redim Preserve myAr(AA - 1)
End If
End Sub
Sub Beispiel()
Dim myAr(), AA As Long
'bei Pfadangabe auf abschließend \ achten
Call TestLeseDaten1(myAr, "J:\1 Forum\", AA)
If AA > 0 Then
Debug.Print Ubound(myAr) 'hier stehen die Dateien drin
Else
Debug.Print "keine Dateien" 'keine Dateien gefunden
End If
End Sub
Gruß Tino
Öffne Excel und den Visual Basic-Editor:
ALT + F11
, um den VBA-Editor zu öffnen.Füge ein neues Modul hinzu:
Kopiere den folgenden VBA-Code in das Modul:
Option Explicit
Sub TestLeseDaten1(myAr() As String, strPfad As String, AA As Long)
Dim sFiles As String
Redim Preserve myAr(100000) 'Area groß genug für 100001 Dateien
sFiles = Dir$(strPfad & "*.*")
Do While sFiles <> ""
myAr(AA) = sFiles
AA = AA + 1
sFiles = Dir$()
Loop
If AA > 0 Then
Redim Preserve myAr(AA - 1)
End If
End Sub
Sub Beispiel()
Dim myAr(), AA As Long
'bei Pfadangabe auf abschließend \ achten
Call TestLeseDaten1(myAr, "J:\1 Forum\", AA)
If AA > 0 Then
Debug.Print Ubound(myAr) 'hier stehen die Dateien drin
Else
Debug.Print "keine Dateien" 'keine Dateien gefunden
End If
End Sub
Passe den Pfad an:
Call TestLeseDaten1(myAr, "J:\1 Forum\", AA)
zu deinem gewünschten Ordner.Führe das Skript aus:
Beispiel
-Makro im VBA-Editor aus und klicke auf "Ausführen" oder drücke F5
.Fehlermeldung wegen ungültigem Pfad:
\
) endet.Keine Dateien gefunden:
*.*
nicht die gewünschten Dateien anzeigt, passe diesen an.Verwendung von Excel-Funktionen:
=WEBSERVICE()
, um Daten aus einem Online-Ordner zu importieren, wenn du mit Webinhalten arbeitest.Power Query:
Beispiel 1:
Beispiel 2:
myAr()
in myAr() As String
in myAr() As Variant
, um auch andere Dateitypen zu unterstützen und die Flexibilität zu erhöhen.Error Handling:
On Error GoTo
, um Probleme beim Ausführen des Makros zu identifizieren und zu beheben.Performance-Optimierung:
Dir$()
durch das Speichern der Dateinamen in einer Array-Variable, um die Ausführungsgeschwindigkeit zu erhöhen.1. Wie viele Dateien kann das Skript verarbeiten? Das Skript ist derzeit so konfiguriert, dass es bis zu 100001 Dateien verarbeiten kann. Dies kann angepasst werden, indem du die Größe des Arrays änderst.
2. Funktioniert das Skript in allen Excel-Versionen? Das Skript sollte in den meisten modernen Excel-Versionen funktionieren, die VBA unterstützen, wie Excel 2010, 2013, 2016, 2019 und 365.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen