为什么Workbooks.Open关闭默认工作簿?

时间:2015-06-25 12:51:25

标签: excel vba

我们正在开发一个Excel插件。 我们发现当用户在打开excel后立即运行VisualBasic代码时,VisualBasic代码失败的问题。

代码从Web服务获取工作簿,并尝试将工作簿中的工作表插入到原始工作簿中。 当用户未与“默认”工作簿交互时,这将始终失败。

我的意思是“默认”是Excel启动时创建的工作簿,或者我按“CTRl + N”。

失败的原因是代码:

 Workbooks.Open (url)

关闭默认工作簿。为什么会这样?

仅关闭默认工作簿。如果我们打开另一个工作簿,那么上面的代码就不会关闭它。

我们尝试通过存储对活动工作簿的引用来解决此问题。

Set wkbMyWorkbook = ActiveWorkbook
Workbooks.Open (url)

但是在Workbooks.Open关闭“默认”工作簿之后,引用变量仍然存在且具有内容。

我做错了什么?有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

关于它为什么会发生,我没有答案,但作为一种解决方法的想法,如果你先写一些东西到工作表上,它仍然会发生吗?例如:

cells(1,1)="x"
cells(1,1).ClearContents

答案 1 :(得分:0)

在执行Workbooks.Open...

之前,请在活动工作簿上保存