我想知道是否有可能帮助我处理我的excel工作簿中的问题。
让我们说例如我在与运行VBA代码的书相同的文件夹中有2个工作簿。
main.xlsm
20160909- Beef v22_1.xlsx
20161015- Stew v21_0.xlsx
我想打开这些书籍,并从表格中的单元格区域复制数据 - 这里的关键标识符是"牛肉"和"炖"因为这些不会改变。这与皮埃尔试图做的事情非常相似here,但我不需要那么远,我知道我要复制的工作表名称和单元格范围,我几乎知道如何复制它们与
Workbooks(beefWB).Sheets("Sheet2").Range("A1:E20").Copy _
Destination:=Workbooks("main.xlsm").Sheets("combined").Range("E2")
我遇到的主要问题是使用Dir进行通配符搜索;
Dim beefWB As String
beefWB = Dir(ThisWorkbook.Path & "\*beef*.xlsx")
Do While beefWB <> ""
Workbooks.Open Filename:=ActiveWorkbook.Path & "\" & beefWB
beefWB = Dir
Loop
Excel似乎无法找到工作表。由于所有纸张均以&#34; 201&#34;它将用&#34; * 201 * .xlsx&#34;打开它们,它甚至会用&#34; * 609 * .xlsx&#34;打开牛肉工作簿。但它不会打开实际的关键字&#34;牛肉&#34;或者&#34;炖&#34;。我试图通过使用
切换策略If InStr(beefWB, "beef") > 0 Then
Workbooks.Open Filename:=ActiveWorkbook.Path & "\" & beefWB
但我对此很陌生,所以我可能会以这种或那种方式弄乱它。
奖金 - 如果可以打开每种类型的最新文件(牛肉和炖菜),那会更好,但它不是必需的。
道歉,因为这似乎是一个常见的问题,但我希望你能提供帮助。