之前已经提出这个问题,但我已经尝试了所有建议而没有成功。我正在运行VB for Excel子例程,该子例程由从电子表格读取的用户输入控制,并循环以重新计算子例程内存中的值。我有一行将迭代编号输出到一个单元格,供用户查看进度并验证它是否正常运行。单元更新几次迭代(通常为4),然后停止显示进度,即使例程最终将完成,此时单元最终更新。当前程序可以运行600-700次迭代以达到融合解决方案。
答案 0 :(得分:0)
我认为展示进展的最佳方式是创建UserForm。您可以在下面找到应放在此UserForm中的VBA代码。只需插入1个按钮和一个标题 - 它应该有效。试试:))
在一个模块中:
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 Sub