Excel VBA-导入可工作但不可用的宏';T

Excel VBA-导入可工作但不可用的宏';T,vba,excel,Vba,Excel,我有以下宏- Sub Import_Data() Dim rng As Range Dim WB2 As Workbook Dim FName As String Dim c1 As Worksheet Set c1 = Sheets("c") FName = Dir(Application.ActiveWorkbook.Path & "\*w" & Format((WorksheetFunction.WeekNum(Now) - 1), "00") & ".

我有以下宏-

Sub Import_Data()

Dim rng As Range
Dim WB2 As Workbook
Dim FName As String
Dim c1 As Worksheet
Set c1 = Sheets("c")

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

    c1.Range("L2:O6").Value = WB2.Worksheets(2).Range("M2:P6").Value

    c1.Range("L14:O18").Value = WB2.Worksheets(2).Range("M14:P18").Value

WB2.Close

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

因此,工作表就在那里,我可以打开工作表,但出于某种原因,它不会接受它。另外,奇怪的是,如果我改变了工作表的文件名,它正在寻找“水果W32. XLSM”,当我运行宏时,DaveDead会找到“水果”,但它只会在图片

中的空白处说“水果”。 它工作得非常好,但现在它有了真正的问题,我不明白为什么。有什么想法吗


编辑:如果我去掉Dir()部分,它工作正常

Dir函数仅在找到文件名时返回文件名,因此您必须在打开时指定路径

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

Dir函数仅在找到文件名时返回文件名,因此必须在打开时指定路径

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

你检查过FName的值吗?是的,所以它的值是filename+.xlsm,但是它事先没有完整的路径。这就是问题所在吗?您是否尝试过在开放行中添加路径
Filename:=activeworkbook.path&“\”&fname)
您检查过fname的值吗?是的,所以它的值是Filename+.xlsm,但它事先没有完整的路径。这就是问题所在吗?您是否尝试过在开放行中添加路径<代码>文件名:=activeworkbook.path&“\”&fname)