ThisWorkbook中事件workbook_open中的Form Show方法在焦点上中断

时间:2011-07-26 20:20:06

标签: excel vba runtime-error userform

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

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

此外,当我按F8时,它突出显示私有子工作簿_open(),另一个按下高亮显示userform1.show,另一次按下显示运行时错误'400'。:

  

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

之前从未发生这种情况,我发现一条帖子说它没有回答here

有什么想法吗?

4 个答案:

答案 0 :(得分:3)

我也遇到了同样的情况。

我所做的是将Form属性中的ShowModal属性更改为False,然后中断就消失了。

答案 1 :(得分:1)

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

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

解决这个问题的方法是在代码未运行时按ctrl + break,它会显示它处于中断模式,然后按F5。它不会开始运行,但会再次退出中断模式。当你这样做时,问题应该得到解决,你可以像往常一样运行代码。 我想这种方法和重启你的电脑一样,但速度要快得多。

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

这是一个奇怪的行为,有些时候我开发了一些可能会帮助你的技巧:

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

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

希望它有所帮助!