首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从VBA内部更新单元格值,以显示用户Sub正在运行

从VBA内部更新单元格值,以显示用户Sub正在运行
EN

Stack Overflow用户
提问于 2017-05-10 17:23:33
回答 1查看 22关注 0票数 0

以前有人问过这个问题,但我尝试了所有的建议,但都没有成功。我正在运行一个用于Excel子程序的VB,该子程序由从电子表格读取的用户输入控制,并循环以重新计算子例程中内存中的值。我有一条线,它将迭代号输出到一个单元格中,以便用户查看进度并验证它是否正常运行。单元格更新几次(通常为4次),然后停止显示进度,尽管例程最终将继续进行,此时单元格将最终更新。当前过程可能运行600-700次迭代以达到收敛的解决方案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-10 17:43:06

在我看来,显示进展的最好方法是创建UserForm。下面您将找到应该放在这个UserForm中的VBA代码。只需插入一个按钮和一个标题-它应该可以工作。(试:)

在一个模块中:

代码语言:javascript
复制
Sub UserFormTest()

UserForm1.Show

End Sub

在UserForm中:

代码语言:javascript
复制
Private Sub CommandButton1_Click()

Dim r As Integer

For r = 2 To 10000
    'Your code goes here
    Call Aktual(r)
    Timeout 0.01

Next r
Application.ScreenUpdating = True

Unload Me

End Sub



Private Sub Aktual(intProgres As Integer)

Label1.Caption = "Progress " & intProgres


End Sub


Sub Timeout(seconds As Double)
Start_Time = Timer
Do
DoEvents

Loop Until (Timer + 1000 - Start_Time) >= seconds
End Sub
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43899054

复制
相关文章

相似问题

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