以前有人问过这个问题,但我尝试了所有的建议,但都没有成功。我正在运行一个用于Excel子程序的VB,该子程序由从电子表格读取的用户输入控制,并循环以重新计算子例程中内存中的值。我有一条线,它将迭代号输出到一个单元格中,以便用户查看进度并验证它是否正常运行。单元格更新几次(通常为4次),然后停止显示进度,尽管例程最终将继续进行,此时单元格将最终更新。当前过程可能运行600-700次迭代以达到收敛的解决方案。
发布于 2017-05-10 17:43:06
在我看来,显示进展的最好方法是创建UserForm。下面您将找到应该放在这个UserForm中的VBA代码。只需插入一个按钮和一个标题-它应该可以工作。(试:)
在一个模块中:
Sub UserFormTest()
UserForm1.Show
End Sub在UserForm中:
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 Subhttps://stackoverflow.com/questions/43899054
复制相似问题