VBA - 从模块更新 ProcessBar - 错误 800100007

VBA - Updating a ProcessBar from module - Error 800100007

我想从模块 main 调用进程栏并从 main 更新栏。 我的 UserForm1:

模块代码为:

Public Sub main()
    Dim i, max, k, dummy As Long
    Dim myUserForm As UserForm1

    Set myUserForm = New UserForm1
    max = 100
    myUserForm.Label5 = max
    myUserForm.Label2 = 0
    myUserForm.Show
    For i = 1 To max
        myUserForm.UpdateStatus i
        For k = 1 To 10000              'loop for time-consuming
            dummy = Sqr(k)
        Next
    Next
    Unload myUserForm
End Sub

UserForm1中的代码是:

Option Explicit
Public Sub UpdateStatus(i)
    Me.Label2 = i
    Me.ProgressBar1 = i
    DoEvents
End Sub

UserForm1 出现一次,然后我进入 main at myUserForm.UpdateStatus i 错误 800100007。我正在使用 VBA Word。我怎样才能让它发挥作用?

您需要更改表格的显示方式:

myUserForm.Show vbModeless

目前,循环不会执行,直到您关闭表单,此时表单不可用并生成错误。