如何在vba中仅隐藏一些选定的标签

时间:2016-06-08 14:06:44

标签: excel vba

我的用户表单中有20个标签和20个文本框。如果我从组合框的下拉菜单中选择一个选项,则应锁定3个标签和3个文本框。如果我从组合框中选择另一个选项,则应锁定另外3个标签和3个文本框等等

我需要在我的用户表单中显示,当从组合框中选择一个选项时,某些文本框被锁定(我接受我们可以通过单击用户窗体找到该文本框并且文本框不接受任何输入)看着用户形态。标签在被锁定时会自动模糊但不是文本框

提前致谢

1 个答案:

答案 0 :(得分:0)

使用.BackColor = 14737632将已禁用的文本框变灰。

调用单独的过程来切换文本框属性可能是最有效的,例如:

Private Const bgEnabled As Long = -2147483643
Private Const bgDisabled As Long = 14737632

Private Sub enableTB(tb As MSForms.TextBox, blEnable As Boolean)
    If (blEnable) Then
        With tb
            .Enabled = True
            .BackColor = bgEnabled
        End With
    Else
        With tb
            .Enabled = False
            .Text = ""
            .BackColor = bgDisabled
        End With
    End If
End Sub

Private Sub dd_Change()
' Example code for calling separate procedure to toggle textbox properties based on combobox value
    Select Case (dd.ListIndex)
    Case 0
        enableTB tb1, True
        enableTB tb2, False
    Case 1
        enableTB tb1, False
        enableTB tb2, True
    End Select
End Sub