从VBA中更新单元格值以向用户显示Sub正在运行

时间:2017-05-10 17:23:33

标签: excel-vba vba excel

之前已经提出这个问题,但我已经尝试了所有建议而没有成功。我正在运行VB for Excel子例程,该子例程由从电子表格读取的用户输入控制,并循环以重新计算子例程内存中的值。我有一行将迭代编号输出到一个单元格,供用户查看进度并验证它是否正常运行。单元更新几次迭代(通常为4),然后停止显示进度,即使例程最终将完成,此时单元最终更新。当前程序可以运行600-700次迭代以达到融合解决方案。

1 个答案:

答案 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