ComboBox清除Excel VBA

时间:2016-12-16 10:00:07

标签: excel vba excel-vba combobox

我正在编写一个脚本,其中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,我真的需要它是空的。

我做错了什么?非常感谢你的帮助。

1 个答案:

答案 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代替空引号

也更好