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")
所以它基本上不会查看表单的名称,但会看到最后两位数字。
周数在文件夹中始终是唯一的,但名称可能不同。 例如
文件夹可能包含以下文件:
Worksheet 1 w21 Different Name w22 Alternate w23
如果我们在W24,我想它从“备用W23”
我希望这是有道理的。 谢谢
编辑 – 另类
如果这是不可能的,它也可以工作,如果前几周的文件与当前文件具有相同的名称。 因此,如果活动工作簿被称为“工作簿w23”,那么它会在同一个文件夹中find“工作簿w22”。 但是需要可以概括表单的名称。 所以,而不是最后两位数字之前的任何名称的原始build议,它将是活动工作簿相同的名称与两个不同的数字在结尾
如果我正确地解释你的问题,你只需要一个通配符:
FName = Dir(Application.ActiveWorkbook.Path & "\*w" & Format((WorksheetFunction.WeekNum(Now) - 1), "00") & ".xlsm")