Excel VBA - 导入宏有效,但没有

时间:2017-08-14 12:37:39

标签: excel vba excel-vba

我有以下宏 -

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

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

enter image description here

因此,工作表在那里,我可以打开工作表,但由于某种原因它不会接受它。另外,奇怪的是,如果我更改了工作表的文件名,它正在寻找" Fruit w32.xlsm",当我运行宏时,狂野的人会发现& #34;水果"但它只会说" Fruit"在图片的空白处

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

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

1 个答案:

答案 0 :(得分:2)

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

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