Ответ 1
Вы должны добавить эту строку непосредственно перед loop
MyFile = Dir
Loop
Я хочу открыть все файлы в указанной папке и иметь следующий код
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. Большое спасибо заранее.
Вы должны добавить эту строку непосредственно перед loop
MyFile = Dir
Loop
Вы можете использовать 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
Попробуйте приведенный ниже код:
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
Мне также нужно сделать то же самое, но дополнительно мне нужно выполнить некоторую команду в файлах Excel, сохранить и закрыть, затем открыть другой файл, выполнить команду, сохранить и закрыть. Как и мне нужно сделать для всех листов по указанному пути.