Excel VBA – 导入macros的工作,但没有

我有以下的macros –

Sub Import_Data() Dim rng As Range Dim WB2 As Workbook Dim FName As String Dim ChampSpecific1 As Worksheet Set ChampSpecific1 = Sheets("Summary-Champion Specific") FName = Dir(Application.ActiveWorkbook.Path & "\*w" & Format((WorksheetFunction.WeekNum(Now) - 1), "00") & ".xlsm") Set WB2 = Workbooks.Open(Filename:=FName) ChampSpecific1.Range("L2:O6").Value = WB2.Worksheets(2).Range("M2:P6").Value ChampSpecific1.Range("L14:O18").Value = WB2.Worksheets(2).Range("M14:P18").Value WB2.Close End Sub 

当我运行它时,我得到以下错误

在这里输入图像说明

所以,工作表在那里,我可以打开工作表,但不会因为某种原因接受它。 此外,有什么奇怪的是,如果我改变了工作表的文件名,它正在寻找“水果w32.xlsm”,当我运行的macros,狂放的将发现“水果”,但它只会说“水果”的空白图片中的空间

它工作得很好,但现在有真正的问题,我不明白为什么。 有任何想法吗?

编辑:如果我摆脱了Dir()部分它工作正常

如果findDir函数只返回文件名,所以你必须指定打开的path。

 FPath = Application.ActiveWorkbook.Path FName = Dir(FPath & "\*w" & Format((WorksheetFunction.WeekNum(Now) - 1), "00") & ".xlsm") Set WB2 = Workbooks.Open(Filename:=FPath & "\" & FName)