工作簿。打开填充“源”而不是“目标”文件

我已经尝试了下面的,还有很多其他的没有注意到,但是成功有限。

https://msdn.microsoft.com/en-us/library/office/ff194819.aspx

Workbooks.Open方法在VBA中

我的情况是这样的:我有一个从我们的ERP系统产生的每周文件,填充有限的信息。 我有一个macroslogging(是的,我知道…)来自动填充我需要的其他数据,从另一个来源链接,但macros总是要求我打开“源”工作簿之前可以填充数据。 我想使用“Open.Workbooks”expression式来打开工作簿(只读和不更新链接),所以我不必每次运行macros时都要“钻取”源工作簿。

我发现将打开工作簿作为只读文件的string,并不会更新链接。 我已经testing了它作为一个独立的,它的作品像一个魅力:

Workbooks.Open Filename:="SourceFile.xlsx", ReadOnly:=True, UpdateLinks:=False 

我遇到的问题是,当我把这个小的子程序与我的另一个macros组合时,应该填充在“目标”文件中的数据实际上填充在“源”文件中。 我需要打开“源”文档,然后以某种方式激活“目标”工作簿,以便数据填充发生在“目标”工作簿中,而不是“源”

我已经看到在使用“open.workbooks”expression式之后,将活动工作簿设置为“目标”工作簿的代码片段,但是我不知道如何实现它们。

 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 

设置两个不同的工作簿对象。