有没有一种方法可以在不使用invoked
的情况下从任何打开的工作簿复制和粘贴数据?我希望能够从工作簿复制相同的数据集,然后将其关闭,然后在打开另一个工作簿时,宏将知道我正在从第二个工作簿进行复制。
例如: 代码1:从第一个数据源复制
Workbooks.Open("FileName")
代码2:从第二个数据源复制
Set wb1 = ThisWorkbook
Set wb2 = Workbooks.Open("C:\Users\HONL120\Desktop\Sept HC Reports\HR Headcount Report 2018 Australia SEPTEMBER.XLSX")
在上面的示例中,我想避免这种情况,并让宏知道当我打开第二个数据源时,我正在从中提取数据,而不必再次键入文件名。
有没有办法做到这一点?希望我的解释清楚并预先感谢!
答案 0 :(得分:0)
我想您可以遍历打开的工作簿,并使用 If语句忽略那些您不想包括的内容:
Dim wb As Workbook
For Each wb In Application.Workbooks
If wb.Name <> "PERSONAL.XLSB" And wb.Name <> ThisWorkbook.Name Then
Rem: Do what you need to do with the other workbook
End If
Next wb
答案 1 :(得分:0)
抱歉,我并没有完全了解您的目标是什么,但是我想您可以在 excel模板文件中设置宏(请在google上找到它的位置,因为它取决于您的版本) ),代码为 activeworkbook .range(xxx).copy。
在这种情况下,每当您打开要复制的新工作簿时,都可以在excel中运行此宏(您甚至可以将宏设置为快速访问栏,以便于访问)
希望获得帮助。