首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows XP Excel VBA在Windows 7上崩溃

Windows XP Excel VBA在Windows 7上崩溃
EN

Stack Overflow用户
提问于 2012-07-18 18:55:53
回答 3查看 6.1K关注 0票数 0

我正在尝试将Excel VBA宏从Windows XP切换到Windows 7。这两个Windows版本都是32位操作系统。我的Windows7版本是企业版。

VBA代码在Windows XP上运行良好。当我试图在Windows7上运行代码时,它崩溃了,并且没有报告错误描述。

我已经注册了msinet.ocx,这似乎是Microsoft Internet Transfer Control 6.0所必需的。我还试图通过添加额外的com组件tabctl32comctl332/232/32comdlg32来修复安全问题,所有这些组件都是ocx文件。然而,没有任何变化-我的代码在Windows7上仍然失败。

一旦取消注册msinet,Excel VBA就会打开我的工作簿,报告缺少的引用msinet,并且根本不工作。如何解决此问题?

EN

回答 3

Stack Overflow用户

发布于 2012-07-19 01:37:33

很尴尬。在宏安全性设置为高或中的Excel任务中打开工作表,并对有关在工作表中启用VBA宏的对话框回答“否”。

如果打开它,您应该仍然能够查看项目,并且如果您尝试编译它,可能会显示明显的缺少引用或错误。

下一步:将工作簿另存为html并关闭Excel。清除temp文件夹,重新启动excel,打开html文件并将其保存回Excel格式。如果你幸运的话,所有的遗留对象和引用都会被清除掉,并被与你的新操作系统兼容的版本所取代。

这大约有一半的时间是有效的。

票数 2
EN

Stack Overflow用户

发布于 2012-07-19 20:34:12

当msinet.ocx没有注册时系统没有崩溃并不意味着这就是问题所在。

如果在ThisWorkbook模块内部或从该模块调用的任何过程中调用了该库(msinet.ocx),并且取消了该库的注册,则当该文件打开并尝试运行On open宏时,该模块将不会编译,因此不会运行导致其崩溃的代码行。(我只是猜测这可能是您的情况。)

尝试找出导致系统崩溃的确切调用。

  1. 让msinet.ocx在不激活宏的情况下打开文件。
  2. 然后通过文件的打开代码( Private Sub Workbook_Open() )

手动运行Step by Step (F8)

最终,您将到达导致系统崩溃的确切代码行。点击这些信息,你将能够得到更多的帮助。

注意:

要在不激活宏的情况下打开文件,可以使用以下方法之一:

在双击文件以将其打开(从windows资源管理器)后,

  • 按住Shift键。要使此方法起作用,必须关闭Excel应用程序。
  • 如果Excel应用程序处于打开状态,则转到VB编辑器,在“即时”窗口中键入application.EnableEvents=False (然后按enter键运行)。请注意,这将禁用该Excel实例中每个文件上的事件。您必须将其设置回true或关闭应用程序(而不仅仅是文件)。
票数 1
EN

Stack Overflow用户

发布于 2014-05-29 22:19:33

检查您是否没有对缺少的库的引用,如果有,只需取消选中它。我也遇到过类似的问题,这对我的情况很有帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11539744

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档