excel 2016 VBA星号通配符导致1004应用程序定义或对象定义的错误

我想弄清楚在excel中突然改变了什么,使我的代码因为星号通配符而停止工作。 我将此代码作为前端将数据文件(包括.xls.xlsx )合并到包含下面显示的代码的空白文件中。 这工作正常,并使用无数次没有问题。 文件本身和代码几周前在Excel 2016上完成。

现在,当它运行时,我收到“运行时错误1004应用程序定义或对象定义的错误” ,我不知道为什么。 我用每行上的文字修饰,我很确定它是导致错误的“ .xl ”。

我用目标文件夹中的实际文件名replace了“ .xl ”,它没有任何问题。 为什么会使用星号突然导致这个错误?

有没有人跑过这个呢? 我search了高低,找不到任何人报道的东西完全一样。 这是我一直在使用的,再次,它现在工作好几个星期了。

Sub MergeDataFiles() Dim sPath As String Dim MyFile As String Dim wBk As Workbook sPath = InputBox("Paste File Path Here") MyFile = Dir(sPath & "\*.xl*") Application.EnableEvents = False Application.ScreenUpdating = False Do While Len(MyFile) > 0 Set wBk = Workbooks.Open(sPath & MyFile) wBk.Sheets(1).Copy After:=ThisWorkbook.Sheets(1) wBk.Close True MyFile = Dir() Loop ActiveWorkbook.Save Application.EnableEvents = True Application.ScreenUpdating = True End Sub 

我认为反斜杠模棱两可造成这里的问题。

我build议删除它,如果它在那里,然后在代码需要它手动添加它:

 Sub MergeDataFiles() Dim sPath As String Dim MyFile As String Dim wBk As Workbook sPath = InputBox("Paste File Path Here") If Right(sPath, 1) = "\" Then sPath = Left(sPath, Len(sPath) - 1) ' strip away last backslash if present MyFile = Dir(sPath & "\*.xl*") Application.EnableEvents = False Application.ScreenUpdating = False Do While Len(MyFile) > 0 Set wBk = Workbooks.Open(sPath & "\" & MyFile) ' include backslash to keep full path correct wBk.Sheets(1).Copy After:=ThisWorkbook.Sheets(1) wBk.Close True MyFile = Dir() Loop ActiveWorkbook.Save Application.EnableEvents = True Application.ScreenUpdating = True End Sub