Windows XP Excel VBA在Windows 7上崩溃
我正在尝试将Excel VBA宏从Windows XP切换到Windows 7。两个Windows版本都是32位操作系统。我的Windows 7版本是企业版 VBA代码在Windows XP上运行良好。当我试图在Windows7上运行代码时,它崩溃了,并且没有报告任何错误描述 我已注册了Windows XP Excel VBA在Windows 7上崩溃,vba,windows-7,excel-2007,windows-xp,msinet,Vba,Windows 7,Excel 2007,Windows Xp,Msinet,我正在尝试将Excel VBA宏从Windows XP切换到Windows 7。两个Windows版本都是32位操作系统。我的Windows 7版本是企业版 VBA代码在Windows XP上运行良好。当我试图在Windows7上运行代码时,它崩溃了,并且没有报告任何错误描述 我已注册了msinet.ocx,这似乎是Microsoft Internet Transfer Control 6.0所必需的。我还尝试通过添加额外的com组件tabctl32、comctl332/232/32和comdl
msinet.ocx
,这似乎是Microsoft Internet Transfer Control 6.0所必需的。我还尝试通过添加额外的com组件tabctl32
、comctl332/232/32
和comdlg32
来解决安全问题,所有这些组件都是ocx文件。但是,没有任何变化-我的代码在Windows 7上仍然失败
取消注册
msinet
后,Excel VBA将打开我的工作簿,报告缺少的引用msinet
,并且根本不起作用。如何解决此问题?尴尬。在宏安全性设置为“高”或“中”的Excel会话中打开工作表,并对有关在工作表中启用VBA宏的对话框回答“否”
如果它打开,您应该仍然能够查看该项目,如果您试图编译它,这可能会显示一个明显的缺少引用或错误
下一步:将工作簿另存为html并关闭Excel。清除临时文件夹,重新启动excel,打开html文件并将其保存回excel格式。如果幸运的话,所有遗留对象和引用都将被清除并替换为与新操作系统兼容的版本
这种方法有一半的时间有效。很尴尬。在宏安全性设置为“高”或“中”的Excel会话中打开工作表,并对有关在工作表中启用VBA宏的对话框回答“否” 如果它打开,您应该仍然能够查看该项目,如果您试图编译它,这可能会显示一个明显的缺少引用或错误 下一步:将工作簿另存为html并关闭Excel。清除临时文件夹,重新启动excel,打开html文件并将其保存回excel格式。如果幸运的话,所有遗留对象和引用都将被清除并替换为与新操作系统兼容的版本
这在大约一半的时间内都有效。没有注册msinet.ocx时系统没有崩溃并不意味着这就是问题所在 如果您在
ThisWorkbook
模块内部的任何过程中调用了该库(msinet.ocx),或者从该模块调用了该库,并且您未注册该库,那么当文件打开并尝试运行On open宏时,该模块将不会编译,因此不会运行导致其崩溃的代码行。(我只是猜测这可能是你的情况。)
试着找出到底是哪个电话使你的系统崩溃
专用子工作簿_Open()
)- 双击文件以打开文件后(从windows资源管理器)按住Shift键。要使此方法起作用,必须关闭Excel应用程序
- 如果Excel应用程序已打开,则转到VB编辑器,在即时窗口中键入
(然后按enter键运行它)。请注意,这将禁用该Excel实例中每个文件上的事件。您必须将其设置回true或关闭应用程序(而不仅仅是文件)application.EnableEvents=False
- 未注册msinet.ocx时系统未崩溃并不意味着这就是问题所在
如果您在
ThisWorkbook
模块内部的任何过程中调用了该库(msinet.ocx),或者从该模块调用了该库,并且您未注册该库,那么当文件打开并尝试运行On open宏时,该模块将不会编译,因此不会运行导致其崩溃的代码行。(我只是猜测这可能是你的情况。)
试着找出到底是哪个电话使你的系统崩溃
专用子工作簿_Open()
)- 双击文件以打开文件后(从windows资源管理器)按住Shift键。要使此方法起作用,必须关闭Excel应用程序
- 如果Excel应用程序已打开,则转到VB编辑器,在即时窗口中键入
(然后按enter键运行它)。请注意,这将禁用该Excel实例中每个文件上的事件。您必须将其设置回true或关闭应用程序(而不仅仅是文件)application.EnableEvents=False