如何随着代码的进行更新用户表单内容

时间:2019-06-04 14:39:10

标签: excel vba userform

我遇到了一些运行不同功能的vba代码的问题。我建立了一个用户表单,可以使用户随时了解进度。这不是进度条。它只是在更改标签文本。但是,当我运行它时,没有任何变化。在退出用户窗体之前,代码不会完成。有谁知道如何解决这一问题?该代码在下面列出。谢谢!

frmALL.Show
xUpload ("DEV")
frmALL.devProgress.Caption = "Complete!"
frmALL.devProgress.ForeColor = vbGreen
frmALL.qaProgress.Caption = "Uploading"
xUpload ("QA")
frmALL.qaProgress.Caption = "Complete!"
frmALL.qaProgress.ForeColor = vbGreen
frmALL.prodProgress.Caption = "Uploading"
xUpload ("PROD")
frmALL.prodProgress.Caption = "Complete!"
frmALL.prodProgress.ForeColor = vbGreen
frmALL.Header.Caption = "Success!"

devProgress,prodProgress和qaProgress在用户窗体中都是相关的标签。当我设置showModal = false形式时,它只是显示为白色屏幕,直到完成代码后才显示所有“成功”。这是一个问题,因为它没有像我想的那样显示进度。我的代码运行速度是否太快?预先感谢!

1 个答案:

答案 0 :(得分:0)

将根据您的代码尝试给出_Change()用法的快速示例:

Sub Open_UserForm()
    'make sure you have a userform_initialize subroutine for base info
    frmALL.Show vbModeless
End Sub

在您的用户表单代码中,您可能会:

Private Sub ComboBox1_Change()
    'ASSUMES DEVPROGRESS IS TRIGGERED BY COMBOBOX1 VALUE CHANGE
    xUpload ("DEV")
    frmALL.devProgress.Caption = "Complete!"
    frmALL.devProgress.ForeColor = vbGreen
    frmALL.qaProgress.Caption = "Uploading"
End Sub

示例图片...例如我的背景图片

Private Sub UserForm_Initialize()
    ComboBox1.List = Array("cat", "dog")
End Sub

Private Sub combobox1_change()
    Label1.Caption = "label 1 = updated"
End Sub

从一开始的用户表单(从IDE按F5键启动):

enter image description here

我在组合框1中选择内容:

enter image description here

组合框1的值已更改,标签已更新:

enter image description here