2017-08-03 71 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 = Application.ActiveWorkbook.Path + "\AIMS_Report_w" & Format((WorksheetFunction.WeekNum(Now) - 1), "00") 
    Set WB2 = Workbooks.Open(Filename:=FName) 

    ChampSpecific1.Range("L2:O6").Value = WB2.Worksheets(3).Range("M2:P6").Value 

    ChampSpecific1.Range("L14:O18").Value = WB2.Worksheets(3).Range("M14:P18").Value 

WB2.Close 

End Sub 

我想下面一行从

FName = Application.ActiveWorkbook.Path + "\AIMS_Report_w" & Format((WorksheetFunction.WeekNum(Now) - 1), "00") 

更改为类似

FName = Application.ActiveWorkbook.Path + *Any Name before the last 2 digits* & Format((WorksheetFunction.WeekNum(Now) - 1), "00") 

所以基本上不会看表的名称,但会看在最后2位数字。

周数在文件夹中始终是唯一的,但名称可能不同。 E.g

文件夹可能包含下列文件:

Worksheet 1 w21 
Different Name w22 
Alternate w23 

如果我们在W24,我想它从“备用W23”

我希望这是有道理的进口。由于

编辑 - 替代

如果这是不可能的,这也将工作,如果前周文件具有相同的名称作为当前文件。因此,如果活动工作簿被称为“Workbook w23”,那么它会在同一个文件夹中找到“Workbook w22”。但是它需要能够概括表格的名称。所以代替任何名称的最后2位数字前的原建议,这将是相同的名称,并在最后2个不同的数字活动工作簿

回答

1

如果我解释你的问题吧,你只需要一个通配符:在您编辑后

FName = Dir(Application.ActiveWorkbook.Path & "\*w" & Format((WorksheetFunction.WeekNum(Now) - 1), "00") & ".xlsm")

+0

重读,我觉得这可能不是解决你的问题。如果这不是你想要的,请澄清,我会编辑我的答案。 – StevenWalker

+0

这是我想要的,当我这样做,但它说它无法找到文件* 30.xlsx。出于某种原因,它将采用通配符作为实际值,* – Dullspark

+0

Debug.Print完整文件名以确保它符合您的期望?我注意到在你的例子中,文件可能出现在目录中:\ AIMS_Report_w - 检查以确保完整的路径和文件名匹配它应该是的,并让我知道。 – StevenWalker

相关问题