无法更改VBA UserForm的Label中的Visible属性

时间:2015-06-23 15:16:30

标签: forms vba excel-vba visible excel

我有一个名为UserForm1的Excel表单,其中包含具有此属性的标签: Label6 properties

此标签的属性为Visible=False。我想在用户单击CommandButton1时使标签可见,因为我编写了下一个代码:

Private Sub CommandButton1_Click()
    Me.Label6.Visible = True
    Dim oficina_garsa, file_source, file_solds As String
    Dim invoice_year, invoice_month As Integer
    oficina_garsa = TextBox3.Value
    file_source = TextBox1.Value
    file_solds = TextBox2.Value
    invoice_year = CInt(ComboBox1.Value)
    invoice_month = ComboBox2.ListIndex
    Debug.Print oficina_garsa, file_source, file_solds, invoice_year, invoice_month
    Call MainProcess(oficina_garsa, file_source, file_solds, invoice_year, invoice_month)
End Sub

但它不起作用。所以我写了一些链接到CommandButton2的事件代码来测试这样的目的:

Private Sub CommandButton2_Click()
    If Me.Label6.Visible = False Then
        Me.Label6.Visible = True
    Else
        Me.Label6.Visible = False
    End If
    Application.Wait Now + TimeValue("00:00:03")
End Sub

最后一个代码工作正常,而第一个代码没有!但是在第一个代码中,Me.Label6.Visible = True之后的下一个代码在没有错误消息的情况下运行整个。

我尝试用'UserForm1'替换'Me',但结果是一样的。为什么将Visible属性赋值为True在CommandButton2事件中起作用但在CommandButton1事件中不起作用?

1 个答案:

答案 0 :(得分:0)

我知道这个线程已经很老了,但是当我遇到相同的问题时,我想我应该发布修复程序。

设置可见参数后,添加一行

Me.Repaint

这将重新呈现表单并更新元素的可见性。我认为Repaint命令是特定于用户窗体的,因此不确定在其他元素无法正确呈现的情况下是否可以使用。