Anwendung von Application.FileSearch in VBA
Schritt-für-Schritt-Anleitung
Hier ist eine einfache Schritt-für-Schritt-Anleitung, um die Dateisuche ohne Application.FileSearch in VBA zu implementieren:
-
Erstelle ein neues Modul in Excel VBA:
- Öffne Excel und gehe zum Entwicklertab.
- Klicke auf "Visual Basic" und füge ein neues Modul hinzu.
-
Definiere die Variablen:
Const strPath As String = "V:\Controlling Budget\Budget 2013\Turnover_Upload BW\BW UpLoad\"
Dim myArr As Variant
Dim str As String
Dim i As Integer
-
Initialisiere das Array:
myArr = Array("NL*", "FAD*", "IOE*", "IOS*")
-
Durchlaufe das Array und suche nach Dateien:
For i = 0 To UBound(myArr)
str = Dir(strPath & myArr(i))
Do Until str = ""
' Hier kannst du die gefundene Datei öffnen oder verarbeiten
Workbooks.Open Filename:=strPath & str
str = Dir ' Nächste Datei
Loop
Next i
Häufige Fehler und Lösungen
Alternative Methoden
Falls du eine leistungsfähigere Methode zur Dateisuche benötigst, kannst du die API-Funktionen FindFirstFile und FindNextFile verwenden. Diese sind flexibler, aber auch komplizierter. Sie ermöglichen eine erweiterte Suche, die über die Möglichkeiten von Dir hinausgeht.
Hier ein Link zu einer detaillierten Beschreibung der API-Funktionen: API-Funktionen.
Praktische Beispiele
Ein Beispiel für einen vollständigen VBA-Code, der mehrere Dateinamen in einem Ordner verarbeitet:
Sub Datei_Oeffnen()
Const strPath As String = "V:\Controlling Budget\Budget 2013\Turnover_Upload BW\BW UpLoad\"
Dim myArr As Variant
Dim str As String
Dim i As Integer
myArr = Array("NL*", "FAD*", "IOE*", "IOS*")
For i = 0 To UBound(myArr)
str = Dir(strPath & myArr(i))
Do Until str = ""
Debug.Print str ' Gibt die Dateinamen im Direktfenster aus
Workbooks.Open Filename:=strPath & str
str = Dir
Loop
Next i
End Sub
Tipps für Profis
- Verwende
Application.FindFile für spezifische Suchen: Diese Funktion kann hilfreich sein, wenn du nur nach bestimmten Dateitypen suchst.
- Debugging: Nutze
Debug.Print im Code, um die gefundenen Dateinamen im Direktfenster anzuzeigen, bevor du sie öffnest. So kannst du sicherstellen, dass du die richtigen Dateien bearbeitest.
FAQ: Häufige Fragen
1. Warum funktioniert Application.FileSearch nicht mehr in Excel 2010?
Application.FileSearch wurde in Excel 2007 entfernt. Du musst stattdessen die Dir-Funktion verwenden.
2. Wie kann ich sicherstellen, dass nur die gewünschten Dateien geöffnet werden?
Überprüfe die Filterkriterien im Array und nutze die Debug.Print-Anweisung, um die Dateinamen vor dem Öffnen zu überprüfen.
3. Gibt es eine einfache Möglichkeit, nach Unterordnern zu suchen?
Mit der Dir-Funktion kannst du nur im angegebenen Ordner suchen. Für Unterordner musst du eine rekursive Funktion implementieren.
4. Wie kann ich die API-Funktionen in mein Projekt integrieren?
API-Funktionen erfordern etwas mehr Programmierkenntnisse. Du kannst die Funktionen in ein VBA-Modul einfügen, aber stelle sicher, dass du die richtige Syntax und die erforderlichen Deklarationen verwendest.