【发布时间】:2019-09-17 05:48:37
【问题描述】:
我想让工作簿 1 中的 VBA 进入指定文件夹,打开其中的三个工作簿,然后将每个工作簿中的数据(文件夹中的每个工作簿只有一张带有数据的工作表)复制到工作簿 1。
我环顾四周,找到了很多复印工作表的信息;如果我有工作簿名称和选项卡名称,我可以进入文件夹并复制数据,但每次加载新工作簿时(每月)这些都会改变。
Sub OpenWorkbook1()
'Open workbook
Workbooks.Open "P:\FSD\SUPPORT SERVICES\File Load\190731_CO.xls"
'Copy
Workbooks("190731_CO.xls").Worksheets("190731_CO").Range("A2").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
'Paste
Workbooks("Dual Sub.xlsm").Worksheets("CO").Range("A2").PasteSpecial
Paste:=xlPasteValues
Application.CutCopyMode = False
Workbooks("190731_CO.xls").Close SaveChanges:=False
End Sub
上面的代码没问题,但是我希望每个月都能打开工作簿,并且数字(本例中为 190731)会每月更改为随机数。我需要从 3 个工作簿中提取数据,以上仅显示我从其中一个工作簿中收集数据。
【问题讨论】:
-
使用
Dir函数循环浏览特定文件夹中的文件。不要按名称指定工作表,而是按索引指定:.Worksheets(1)。 -
这个线程是我真正用来使它工作的线程:stackoverflow.com/a/31414185/11661025