如何在调试时刷新Excel

时间:2008-10-27 11:28:53

标签: c# vb.net visual-studio excel debugging

如果我正在调试(在这种情况下是由Excel调用的Visual Studio程序集)并且代码更新了Excel工作表,如何让Excel在调试器中暂停时重绘当前工作表/窗口?

1 个答案:

答案 0 :(得分:2)

如果您正在调用Excel跨进程(例如通过自动化),则除非您设置xlApp.ScreenUpdating = False,否则Excel应在调用时自动显示所有更改。如果是这种情况,那么如果设置了断点,如果在调试模式下运行,则最好使用条件来设置xlApp.ScreenUpdating = False。否则,您必须从其他进程设置xlApp.ScreenUpdating = True(使用GetObject()或类似的东西,以便您可以获取相同的Excel应用程序实例)。

但是,如果您的代码是在进程中调用的(例如,如果您的代码作为加载项运行),那么您的代码将通过热键组合,CommandBar按钮,Ribbon控件回调或喜欢。在这种情况下,Excel是单线程的,您的代码将暂停所有Excel执行。在这种情况下,我唯一能想到的就是使用“编辑并继续”,添加行xlApp.ScreenUpdating = True,然后进入下一行。 (不过,请记住以后删除此行!)

如果您没有使用xlApp.ScreenUpdating = False,那么我真的不知道您的问题是什么,而且您必须提供有关代码的更多详细信息......