我正在编写一个脚本,其中Userform
有三个ComboBox
。我希望ComboBox3
的内容取决于用户在ComboBox2
中输入的内容。我通过为ComboBox2
的内容创建索引并使用Select Case
函数填充ComboBox3
来完成此操作。这很好。
初始化UserForm
后,ComboBox3
将被冻结,直到用户输入ComboBox2
中的内容为止。但是,只要用户在输入ComboBox3
中的内容后再次删除其内容,我希望ComboBox2
变为空并重新冻结。我尝试使用以下代码执行此操作:
If ComboBox2 = "" Then
ComboBox3 = "" And ComboBox3.Enabled = False
End If
这给了我一个“Type Mismatch”错误消息。我尝试了以下内容,它的确有效:
If ComboBox2 = "" Then
ComboBox3.Enabled = False
End If
然而,它只会重新冻结ComboBox3
,我真的需要它是空的。
我做错了什么?非常感谢你的帮助。
答案 0 :(得分:2)
我认为你错误地使用了And
如果您希望它在同一条线上,请使用
If ComboBox2 = vbNullString Then
ComboBox3 = vbNullString: ComboBox3.Enabled = False
End If
如果您对代码格式不感兴趣,请使用
If ComboBox2 = vbNullString Then
ComboBox3 = vbNullString
ComboBox3.Enabled = False
End If
使用vbNullString
代替空引号