如何在debugging时刷新Excel

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

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

但是,如果您的代码正在进行调用(例如,如果您的代码是作为加载项运行的),那么您的代码将通过热键组合,CommandBarbutton,Ribbon控件callback等来触发。 在这种情况下,Excel是单线程的,您的代码正在停止所有的Excel执行。 在这种情况下,我唯一能想到的就是使用“编辑并继续”,添加行xlApp.ScreenUpdating = True ,然后进入下一行。 (不过记得删除这一行,但!)

如果你没有使用xlApp.ScreenUpdating = False ,那么我真的不知道你的问题是什么,你必须提供你的代码的更多细节…