首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >excel中的ScreenUpdating和加载栏

excel中的ScreenUpdating和加载栏
EN

Stack Overflow用户
提问于 2017-02-03 21:15:25
回答 2查看 2.5K关注 0票数 0

我正在运行大量代码来创建一些报告。

为了查看报表的创建进度,我想在我的控制表上显示一个加载栏。

因此,我使用条件格式在单元格中创建一个加载栏。当报表(=工作表)计算完成时,加载条已达到100% (满)。

我现在在更新这些加载栏时遇到的问题。

在运行我的代码时,会执行不同的宏。加载栏可以工作4-5个宏,之后屏幕会冻结,直到所有的宏都完成。这里的问题在哪里?

进度条的填充是由另一个宏完成的,该宏打开屏幕更新,在工作表上设置新的进度值,并关闭屏幕更新。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-03 21:21:19

把DoEvents放在你的循环中,这样Excel就能“赶上”任何动作

将.Repaint放在表单的循环中,这样表单本身就会更新

票数 0
EN

Stack Overflow用户

发布于 2017-02-03 21:31:35

我最近在我的一个文件中添加了一个进度指示器表单。

我创建了一个UserForm,添加了一个框架,并在该框架内添加了一个标签,以及其他几个标签,我可以在以后使用具体内容更新这些标签。

我在开始时加载用户表单,并传递已完成的%和我希望标签对此表示的内容

代码语言:javascript
复制
Public Sub ProgressUpdate(ByVal dCalc As Double, ByVal Process As String)
  With ProgIndi
    If .Visible Then
      .Process.Caption = Process & "..."
      .PercentCompleted.Caption = Int(dCalc * 100) & "% Completed." 
      .Bar.Width = dCalc * 200                                      
      DoEvents                                                      
    End If
  End With
End Sub

在宏末尾,卸载表单。您可以将ScreenUpdating保留为False,表单仍会更新。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42025221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档