如何通过注册表启用VBA项目信任访问并确保Excel生效
问题:通过注册表启用VBA项目信任访问并确保Excel生效
配置情况
- ThisWorkbook为包含代码的启用宏工作簿,ActiveWorkbook是由ThisWorkbook创建并添加代码模块/引用的工作簿。
报错相关代码及现象
添加引用的代码
此代码用于在ActiveWorkbook创建/后续打开后添加所需引用
ActiveWorkbook.VBProject.References.AddFromGuid GUID:="{420B2830-E718-11CF-893D-00A0C9054228}", Major:=1, Minor:=0 'Microsoft Scripting Runtime ActiveWorkbook.VBProject.References.AddFromGuid GUID:="{0002E157-0000-0000-C000-000000000046}", Major:=1, Minor:=0 'Microsoft VB for Applications Extensibility 5.3
运行上述代码时,Excel偶尔会抛出应用程序定义错误,执行到对应代码行时中断。
移动模块的代码
此代码用于将ThisWorkbook中的Module1移动到ActiveWorkbook的CodeModule中
Set SourceModule = Me.VBProject.VBComponents("Module1").CodeModule Set DestinationModule = ActiveWorkbook.VBProject.VBComponents(ActiveWorkbook.CodeName).CodeModule
即使移除添加引用的代码,执行这段代码时同样会报错。
排查过程
- 最初认为是引用错误导致问题,但始终无法解决。
- 通过
MsgBox ActiveWorkbook.VBProject.Name确认,错误由VBProject抛出。 - 发现问题源于开发人员宏设置,目前尝试用VBA调整注册表项修改该设置,但Excel有时无法识别更改,需手动调整,问题仍存在。
核心提问
如何通过注册表启用VBA项目信任访问并确保Excel生效?
内容的提问来源于stack exchange,提问作者VoidSharp
相关产品推荐
相关产品推荐

