Workbooks.Open填充“源”而不是“目标”文件

时间:2015-04-17 13:13:00

标签: excel vba excel-vba

我已经尝试了下面的内容,还有许多其他人没有注意到,但成效有限。

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

Workbooks.Open Method in VBA

我的情况是:我有一个每周一次的文件,由我们的ERP系统生成,填充有限的信息。我有一个宏记录(是的,我知道......)自动填充我需要的其他数据,从另一个源链接,但宏总是要求我打开"源"数据可以填充之前的工作簿。我想使用" Open.Workbooks"表达式打开工作簿(只读和不更新链接)所以我不需要"向下钻取"每次运行宏时都进入源工作簿。

我找到了将工作簿作为只读文件打开的字符串,并且不更新链接。我已将它作为一个独立的测试,它就像一个魅力:

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

我遇到的问题是当我将这个小子例程与我的其他宏结合起来时,应该填充在" target"文件实际填充在"来源"文件。我需要打开"来源"文件,然后以某种方式激活"目标"工作簿使数据填充发生在" target"工作簿,而不是"来源"

我看到了与将活动工作簿设置为" target"相关的代码片段。 " open.workbooks"之后的工作簿使用了表达式,但我不知道如何实现它们。

1 个答案:

答案 0 :(得分:1)

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

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