关闭的 excel 个工作簿保留在 VBA IDE 中
Closed excel workbooks remain in VBA IDE
总结
我非常简单的 Excel 工作簿 myTestBook.xlsb 有一个空的 table 和一个带有例程的代码模块 test_openclose()
里面。此例程只是打开另一个 Excel 工作簿 (Mappe3.xlsx),然后再次关闭该工作簿。
当例程是 运行 (Alt-F8) 并且 VBA IDE 关闭时,一切正常.
当例程 运行 (Alt-F8) 打开 VBA IDE 时, 间歇打开的工作簿会不断列出 在 IDE 的项目浏览器中。每个重复的 运行 都会导致 IDE 的项目浏览器中的另一个条目。
为什么会这样?我该如何应对?
关闭 IDE 6 运行 秒后查看(无条目),打开 IDE 3 运行 秒后查看(3 个条目):
你也可以看到正在导入的工作簿Mappe3.xlsx也很简单:只有一个(空)table,没有命名范围,无内部或外部引用,无模块。
代码
我正在使用
° MS Windows 10 Pro x64, 10.0.19042
° Excel365(V2201 - 16.0.14827.20158,64 位)
° Microsoft Visual Basic for Applications 7.1、Retail 7.1.1119、Forms3:16.0.14827.20024
Option Explicit
Sub test_openclose()
Dim srcBook As Excel.Workbook
Dim name As String
name = "C:\Users\user1\Desktop\Mappe3.xlsx"
' Open a workbook:
Set srcBook = Workbooks.Open(filename:=name)
' Do something useful,
' e.g. enter the current time:
srcBook.Sheets(1).Range("B2").Value = Str(Now)
' Close the workbook and destroy the object
Workbooks(srcBook.name).Close savechanges:=False
Set srcBook = Nothing
End Sub
我试过的
我检查过没有勾选“异国情调”的引用:
我还检查过没有“exotic”add-ins 处于活动状态:
我已经检查了类似的问题和答案,但建议的解决方案不适用于我的情况:
- 我已经像
set wb=nothing
一样编码了,但没有用
- 我不使用
- 我纯VBA,not COM-Add-In, C#, VSTO, ...
- 没有add-ins
我还能尝试什么?
工作簿关闭时不显示效果不同:
使用代码
' Close the workbook
srcBook.Close savechanges:=False
而不是
' Close the workbook and destroy the object
Workbooks(srcBook.name).Close savechanges:=False
Set srcBook = Nothing
未观察到效果。
感谢VBasic2008以上评论!
总结
我非常简单的 Excel 工作簿 myTestBook.xlsb 有一个空的 table 和一个带有例程的代码模块 test_openclose()
里面。此例程只是打开另一个 Excel 工作簿 (Mappe3.xlsx),然后再次关闭该工作簿。
当例程是 运行 (Alt-F8) 并且 VBA IDE 关闭时,一切正常.
当例程 运行 (Alt-F8) 打开 VBA IDE 时, 间歇打开的工作簿会不断列出 在 IDE 的项目浏览器中。每个重复的 运行 都会导致 IDE 的项目浏览器中的另一个条目。
为什么会这样?我该如何应对?
关闭 IDE 6 运行 秒后查看(无条目),打开 IDE 3 运行 秒后查看(3 个条目):
你也可以看到正在导入的工作簿Mappe3.xlsx也很简单:只有一个(空)table,没有命名范围,无内部或外部引用,无模块。
代码
我正在使用
° MS Windows 10 Pro x64, 10.0.19042
° Excel365(V2201 - 16.0.14827.20158,64 位)
° Microsoft Visual Basic for Applications 7.1、Retail 7.1.1119、Forms3:16.0.14827.20024
Option Explicit
Sub test_openclose()
Dim srcBook As Excel.Workbook
Dim name As String
name = "C:\Users\user1\Desktop\Mappe3.xlsx"
' Open a workbook:
Set srcBook = Workbooks.Open(filename:=name)
' Do something useful,
' e.g. enter the current time:
srcBook.Sheets(1).Range("B2").Value = Str(Now)
' Close the workbook and destroy the object
Workbooks(srcBook.name).Close savechanges:=False
Set srcBook = Nothing
End Sub
我试过的
我检查过没有勾选“异国情调”的引用:
我还检查过没有“exotic”add-ins 处于活动状态:
我已经检查了类似的问题和答案,但建议的解决方案不适用于我的情况:
- 我已经像
set wb=nothing
一样编码了,但没有用 - 我不使用
- 我纯VBA,not COM-Add-In, C#, VSTO, ...
- 没有add-ins
我还能尝试什么?
工作簿关闭时不显示效果不同:
使用代码
' Close the workbook
srcBook.Close savechanges:=False
而不是
' Close the workbook and destroy the object
Workbooks(srcBook.name).Close savechanges:=False
Set srcBook = Nothing
未观察到效果。
感谢VBasic2008以上评论!