使用Excel时,我多次遇到屏幕刷新问题。
大多数情况下,为了加快VBA,程序员将使用Application.ScreenUpdating = False
。这将暂时(直到取消)停止屏幕刷新。不幸的是,当您实际想要向用户显示某些进度时,有些情况(例如实施进度条)。问题是已经提到的命令已经停止所有屏幕刷新。
这意味着,即使你的UserForm
上你调用了一个命令来更改标签(例如哪个会说明处理事务15的250 ),但你根本无法显示它
在这种情况下,有些人会做的是暂时启用ScreenUpdating
,然后立即禁用它。不幸的是,这个过程是不可靠的,就好像你有一些困难的过程(将复杂的公式插入单元格),你不能一直保证它也会刷新标签本身。此问题的另一个问题是,您不仅要重新绘制所需的UserForm
,还要重新绘制Worksheet
,因此这种“刷新”会使代码速度变慢。
如何刷新UserForm
而不刷新整个Excel ?
答案 0 :(得分:2)
答案很简单。
假设您的用户表单名为frm_Main
,那么在您的VBA代码中,您只需拨打frm_Main.Repaint
。
这很简单!