VBA:合并工作簿成一个-有麻烦的Dir



我想知道如果它是可能的,如果你能帮我解决一个问题,我有我的excel工作簿。

让我们说,例如,我有两个工作簿在同一文件夹的书与运行的VBA代码。

main.xlsm
20160909- Beef v22_1.xlsx
20161015- Stew v21_0.xlsx

我想打开这些书,并复制数据从一个单元格范围在一个表-这里的关键标识符是"牛肉"one_answers"炖",因为这些不会改变。这与Pierre在这里尝试做的非常相似,但我不需要做那么多,我知道要复制的工作表名称和单元格范围并且我几乎知道如何使用

复制它们
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似乎找不到工作表。由于所有的工作表都以"201"开头,它将以"*201*.xlsx"打开它们,它甚至会以"*609*.xlsx"打开牛肉工作簿,但它不会以实际的关键字"牛肉"或"炖肉"打开。我试图通过使用

转换策略。
If InStr(beefWB, "beef") > 0 Then
    Workbooks.Open Filename:=ActiveWorkbook.Path & "" & beefWB

但是我对这个很陌生,所以我可能会以这样或那样的方式把它搞砸。

奖励-如果可以打开每种类型(牛肉和炖肉)的最新文件,那就更好了,但这不是必需的。

很抱歉,因为这似乎是一个常见的问题,但我希望你能帮助。

试试这个插件怎么样?

http://www.rondebruin.nl/win/addins/rdbmerge.htm

最新更新