Подтвердить что ты не робот

Macro - открыть все файлы в папке

Я хочу открыть все файлы в указанной папке и иметь следующий код

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

Проблема заключается в том, что она просто пытается повторно открыть первый файл в папке и не будет двигаться дальше. Может кто-нибудь помочь, я немного новичок в VBA и действительно могу с некоторой помощью. Я пытаюсь открыть около 30 отчетов, которые все в формате .xlsx. Большое спасибо заранее.

4b9b3361

Ответ 1

Вы должны добавить эту строку непосредственно перед loop

    MyFile = Dir
Loop

Ответ 2

Вы можете использовать Len(StrFile) > 0 в инструкции проверки цикла!

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

Ответ 3

Попробуйте приведенный ниже код:

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

Ответ 4

Мне также нужно сделать то же самое, но дополнительно мне нужно выполнить некоторую команду в файлах Excel, сохранить и закрыть, затем открыть другой файл, выполнить команду, сохранить и закрыть. Как и мне нужно сделать для всех листов по указанному пути.