VBA项目资源管理器仍显示被宏关闭的Excel工作簿。

11

我创建了一个宏,打开一个Excel工作簿并执行一些操作,最后关闭该文件。该宏运行良好。

现在,当我在VBA编辑器中打开我的VBA项目浏览器时,它会显示已被宏打开的文件列表,即使这些文件已经关闭。我怎样从项目浏览器窗口中删除它们?为什么它仍然显示已经关闭的Excel工作簿?有没有方法可以解决这个问题或者这是一个限制?

3个回答

17
我自己找到了答案。
Dim Excel_workbook As Excel.Workbook
Set Excel_workbook = Workbooks.Open("somefile name");
' some code goes here 
' at the end write the below statement
Set Excel_workbook = Nothing 'worked, I found at the 12 page of google search

这是帮助我的链接 http://www.mrexcel.com/forum/showthread.php?t=50086


4
自问自答的问题是可以的。实际上,你应该接受你自己的答案。 - chris neilsen
1
我知道这是很久以前的事情了,但还是觉得有必要补充一些内容。我认为这就是我在打开VBA编辑器时遇到自动化错误的原因,因为它没有正确清除wb变量,即使在.close之后也是如此。发现最好的方法是使用Workbooks(name).Close,然后设置wb = Nothing。 - Joss
我遇到了完全相同的问题。但是我尝试了上面的方法,但工作簿仍然出现在项目窗口中。还有其他可能的解决方案吗? - Anu
以下链接也有图片 [link](https://stackoverflow.com/questions/51740482/why-files-still-appears-in-project-window-even-after-closed-that-excel-file)。希望这是同样的问题。 - Anu

2

更多信息。我遇到了相同的问题,并且正在使用Google Drive(以前是Google桌面)。我发现,仅仅确保设置wb = nothing是无法解决问题的,还必须在以编程方式关闭文件时检查Application.EnableEvents = True。

希望这可以帮助某些人-因为上面的内容对我有所帮助


我发布了一个类似的问题(我的情况发生在所有xlsm文件上,即使只有一个模块、一个子程序包含msgbox "")。当我读到你的帖子提到Google Drive时,我将D盘中的一个xlsm文件(比如说test.xlsm)复制到Google Drive驱动器K盘中。然后我打开K盘中的test.xlsm文件。关闭文件,打开VBA编辑器,VBA编辑器中没有看到test.xlsm。但是如果我打开D盘中的test.xlsm文件,关闭文件,打开VBA编辑器,test.xlsm仍然可以在VBA编辑器中看到。难道是安装在我的电脑上的Google Drive导致了这个问题吗? - karma

1
我知道这是一个老话题,但我遇到了同样的问题,但原因不同。在我的情况下,问题是由于Excel的Microsoft数据流插件 - 一旦我停用它,当工作簿关闭时,项目就从VBA中消失了。

这些插件有点难找。您可以通过以下步骤在Excel中找到它们: 1)菜单_文件_ 2)选项->加载项 3)在“管理”下拉框中,选择_COM 加载项_并单击_“转到”按钮 4)取消选中相应的框或删除该插件(可能需要以管理员身份启动Excel) 5)单击_“确定” 6)重新启动Excel - Traveler

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接