在用户窗体处于活动状态时运行Worksheet_Open代码

时间:2016-05-18 18:47:29

标签: vba excel-vba excel

我的程序在workbook_open事件中调用了7个子例程。我想显示一个进度条(当进度为100%时带有'完成'按钮)但是当我显示进度条时,它不再运行workbook_open事件,直到我关闭用户窗体,然后它继续运行。有没有办法在后台运行代码来显示用户表单?

Private Sub Workbook_Open()
    frmProgress.Show

    'Here it stops running the code

    frmProgress.lblTask = "Updating pivottables..."
    Call updatePivots
    ufProgress.Label1.BackColor = &H8000000D
    frmProgress.lblTask = "Updating data..."
    Call updateData
    ufProgress.Label2.BackColor = &H8000000D

    'Some More code

    frmProgress.lblTask = "Done!"
End Sub

我知道颜色的变化和多个标签效率不高,我正在努力。

1 个答案:

答案 0 :(得分:0)

您应该将代码放在UseForm Activate事件处理程序中,该处理程序将在Workbook Open事件处理程序上触发:)