我正在看这个问题:Excel-VBA Import Module from text file (without require trust center)
所提供的代码使用了.Modules
属性成员,该成员似乎是 VBA 模块的集合。
但是,我似乎无法在 Excel VBA 中使用它。它总是返回一个包含零个对象的集合,否则我会收到不匹配错误:
Sub Test1()
Dim mds As Modules
Set mds = Application.Modules
Debug.Print mds.Count
'Output: 0
End Sub
Sub Test2()
Dim mds As Modules
Set mds = ThisWorkbook.Modules 'This line will return a type mismatch error
Debug.Print mds.Count
End Sub
Sub Test3()
Dim mds
Set mds = ThisWorkbook.Modules
Debug.Print mds.Count
'Output: 0
End Sub
此问题似乎特定于 Excel VBA,因为如果我将 VBA 模块添加到 Access 项目并尝试运行Test1
,我会得到一个非零数字。另请注意,模块仅针对 Access 进行记录。
我尝试查看对象浏览器中的定义。这有点奇怪,因为该属性是隐藏的,并且它返回一个Sheets
对象而不是Modules
.
是否出于安全原因或其他原因从 Excel 中删除了该功能?我正在使用 Microsoft® Excel® for Microsoft 365 MSO(版本 2310 内部版本 16.0.16907.20000)64 位。