我尝试了以下方法,以及许多其他未提及的方法,但取得的成功有限。
https://msdn.microsoft.com/en-us/library/office/ff194819.aspx
我的情况是这样的:我有一个每周文件,由我们的 ERP 系统生成,填充的信息有限。我记录了一个宏(是的,我知道......)来自动填充我需要的其他数据,从另一个源链接,但宏总是要求我在填充数据之前打开“源”工作簿。我想使用“Open.Workbooks”表达式打开工作簿(只读且不更新链接),这样我就不必在每次运行宏时“深入”到源工作簿。
我找到了将工作簿作为只读文件打开的字符串,并且不更新链接。我已经将它作为一个独立的版本进行了测试,它的工作方式就像一个魅力:
Workbooks.Open Filename:="SourceFile.xlsx", ReadOnly:=True, UpdateLinks:=False
我遇到的问题是,当我将这个小子例程与其他宏组合时,应该填充在“目标”文件中的数据实际上填充在“源”文件中。我需要打开“源”文档,然后以某种方式激活“目标”工作簿,以便数据填充出现在“目标”工作簿中,而不是“源”中
我看到了与使用“open.workbooks”表达式后将事件工作簿设置为“目标”工作簿相关的代码片段,但我不知道如何实现它们。
最佳答案
dim wbsource as workbook
dim wbtarget as workbook
set wbsource = activeworkbook
set wbtarget = Workbooks.Open Filename:="SourceFile.xlsx", ReadOnly:=True, UpdateLinks:=False
'do your code here
设置两个不同的工作簿对象。
关于vba - Workbooks.Open 填充 "source"而不是 "target"文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29700232/