2017-08-14 42 views
0

我有以下的宏觀 -Excel的VBA - 導入宏的作品,但不

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 

當我運行它,我得到以下錯誤

enter image description here

因此,工作表在那裏,我可以打開工作表,但由於某種原因它不會接受它。另外,奇怪的是,如果我更改了工作表的文件名,它正在尋找「Fruit w32.xlsm」,當我運行宏時,狂放的將會找到「Fruit」,但它只會在空白處說出「Fruit」圖片中的空間

它工作得很好,但現在它有真正的問題,我不明白爲什麼。有任何想法嗎?

編輯:如果我擺脫迪爾()部分的正常工作

+0

您是否檢查過FName的值? – SJR

+0

是的,所以它的值是文件名+ .xlsm但是它沒有事先提供整個路徑。這是問題嗎? – Dullspark

+2

您是否嘗試在開放式行中添加路徑? '文件名:= activeworkbook.path&「\」&fname)' – SJR

回答

2

Dir函數只有在找到返回的文件名,所以你必須specificy對出口的路徑。

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