Если вы открываете книги, которые находятся в одной папке, измените FolderPath на:
FolderPath = ActiveWorkbook.Path & "\"
Я только что проверил это, и он будет открывать файлы в этой папке, даже если они находятся на SharePoint. Он будет работать везде, где находится папка. Другим решением будет синхронизировать эту папку с OneDrive, и тогда у них будет фиксированный путь на вашем компьютере.
Редактировать: я получил это, чтобы открыть и закрыть две другие *.xlsx
книги и пропустить книгу с макросом. Я предполагаю, что он был сохранен как *.xlsm
рабочая книга и будет взят с *.xls*
. У меня также был Debug.Print в неправильном месте.
Sub ConslidateWorkbooks()
Dim FolderPath As String, Filename As String, TWB As String
Dim Sheet As Worksheet
Application.ScreenUpdating = False
FolderPath = ThisWorkbook.Path & "\"
Filename = Dir(FolderPath & "*.xlsx") 'only will open *.xlsx files
Do While Filename <> ""
Debug.Print (Filename & " will open.")
Workbooks.Open Filename:=FolderPath & Filename, ReadOnly:=True
Debug.Print(Filename & " is active.")
For Each Sheet In ActiveWorkbook.Sheets
copyOrRefreshSheet ThisWorkbook, Sheet
Next Sheet
Debug.Print (Filename & " will close.")
Workbooks(Filename).Close SaveChanges:=False
Filename = Dir()
Loop
End Sub