2

当我尝试在私有子 workbook_open() 中的 ThisWorkbook 中使用 userform1.show 显示 userform1 时,它做了最奇怪的事情。(我使用的是 Excel 2007)- 它进入中断模式并停止运行代码!!!

我打开启用宏的工作簿,用户窗体按计划显示,但是当我在用户窗体区域内移动鼠标时,它进入中断模式并突出显示行 UserForm1.Show 好像是问题所在。

此外,当我按 F8 时,它突出显示了私有子 workbook_open() 并且另一次按下再次突出显示 userform1.show 并且另一次按下显示运行时错误“400”。:

应用程序定义或对象定义的错误。

我以前从来没有遇到过这种情况,我发现一个帖子说这里没有答案。

有任何想法吗?

4

4 回答 4

3

我也遇到了同样的情况。

我所做的是将 Form 属性中的 ShowModal 属性更改为 False 并且中断消失了。

于 2011-08-01T06:27:34.223 回答
1

我有同样的问题,上面的答案并没有解决它。重新启动PC暂时解决了它,但过了一会儿问题又回来了。经过几天令人沮丧的重启电脑后,我得出了以下结论:

我认为导致问题的原因是当您在运行时使用 ctrl+break 停止代码。

对我来说解决问题的方法是在代码未运行时按 ctrl+break,它会显示它处于中断模式,然后按 F5。它不会开始运行,但会再次退出中断模式。完成此操作后,问题应该得到解决,您可以照常运行代码。我猜这个方法和重启你的电脑一样,但速度要快得多。

于 2014-02-24T09:34:26.257 回答
0

这是我在开发时已经遇到过的一些奇怪行为......一些可能会帮助你的提示:

  • 编译代码
  • 清除所有断点
  • 检查项目引用(缺少引用可能会导致问题)
  • 在“隐藏断点”之前添加一些不必要的语句(如if 1 = 2 then DoEvents),编译代码然后再次删除代码
  • 安装并运行VBA 代码清理器

无论哪种方式,这对我来说都是一个谜,这个奇怪问题的原因。似乎某些断点即使在删除它们之后仍以某种方式保留在内存中......

希望能帮助到你!

于 2011-07-26T21:41:17.327 回答
0

首先要尝试的是重新编译您的 VBA 项目,然后保存包含宏的工作簿。如果编译引发错误,您可能会从编译器消息中获得更多信息,例如缺少引用。

还要确保您清除了所有以前存在的断点。可能是您首先必须创建一个新断点 ( F9),然后清除所有断点 ( Ctrl+ Shift+F9 ) 才能启用该命令。

于 2011-07-26T20:25:52.620 回答