web-dev-qa-db-ger.com

Makro - Alle Dateien in einem Ordner öffnen

Ich möchte alle Dateien in einem bestimmten Ordner öffnen und habe den folgenden Code

Sub OpenFiles()
Dim MyFolder As String
Dim MyFile As String
MyFolder = "\\ILAFILESERVER\Public\Documents\Renewable Energy\FiTs\1 Planning
           Department\Marks Tracker\Quality Control Reports"
MyFile = Dir(MyFolder & "\*.xlsx")
Do While MyFile <> ""
Workbooks.Open Filename:=MyFolder & "\" & MyFile
Loop
End Sub

Das Problem, das ich habe, ist, dass es immer wieder versucht, die erste Datei im Ordner zu öffnen, und nicht weitergeht. Kann mir jemand helfen, ich bin ein bisschen ein Anfänger bei VBA und könnte wirklich etwas Hilfe gebrauchen. Ich versuche, ungefähr 30 Berichte im XLSX-Format zu öffnen. Vielen Dank im Voraus.

14
Ross McLaughlin

Sie müssen diese Zeile kurz vor loop hinzufügen.

    MyFile = Dir
Loop
26
Siddharth Rout

Sie können Len(StrFile) > 0 in der Schleifenprüfanweisung verwenden!

Sub openMyfile()

    Dim Source As String
    Dim StrFile As String

    'do not forget last backslash in source directory.
    Source = "E:\Planning\03\"
    StrFile = Dir(Source)

    Do While Len(StrFile) > 0                        
        Workbooks.Open Filename:=Source & StrFile
        StrFile = Dir()
    Loop
End Sub
2
josef

Versuchen Sie den folgenden Code:

Sub opendfiles()

Dim myfile As Variant
Dim counter As Integer
Dim path As String

myfolder = "D:\temp\"
ChDir myfolder
myfile = Application.GetOpenFilename(, , , , True)
counter = 1
If IsNumeric(myfile) = True Then
    MsgBox "No files selected"
End If
While counter <= UBound(myfile)
    path = myfile(counter)
    Workbooks.Open path
    counter = counter + 1
Wend

End Sub
1
Satish