2016-12-16 197 views
0

我寫一個劇本,我有三個ComboBox一個Userform。我希望ComboBox3的內容取決於用戶在ComboBox2中輸入的內容。我通過爲ComboBox2的內容創建索引並使用Select Case函數來填充ComboBox3。這工作正常。組合框清除Excel的VBA

UserForm被初始化時,ComboBox3被凍結,直到用戶輸入ComboBox2中的某些東西。但是,我希望ComboBox3變爲空白,並且在用戶輸入ComboBox2中的內容後再次刪除其內容時,將重新凍結。我試圖用下面的代碼來做到這一點:

If ComboBox2 = "" Then 
     ComboBox3 = "" And ComboBox3.Enabled = False 
End If 

這給了我一個「類型不匹配」的錯誤信息。我曾嘗試以下,和它的作品:

If ComboBox2 = "" Then 
      ComboBox3.Enabled = False 
    End If 

但是,它只能重新凍結ComboBox3,我真的需要它是空的。

我在做什麼錯?非常感謝您的幫助。

+0

'ComboBox3 =「」And ComboBox3.Enabled = False錯誤的語法,將這兩條語句寫在兩條不同的行上並刪除'And'。 –

回答

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而不是空引號

+0

謝謝。它的工作方式非常完美! – franciscofcosta