2016-12-16 14 views
0

私はUserformに3つのComboBoxを持つスクリプトを書いています。 ComboBox3の内容は、ユーザがComboBox2に入力した内容に依存したいと考えています。私はComboBox3を設定するために、ComboBox2の内容のインデックスを作成し、Select Case関数を使用してこれを行いました。これはうまくいきます。ComboBox Clear Excel VBA

UserFormが初期化されると、ComboBox3は、ユーザがComboBox2に何かを入力するまでフリーズします。しかし、ユーザがComboBox2に何かを入力した後、その内容を再度消去すると、ComboBox3が空になり、再びフリーズするようにしたい。私は次のコードでこれを実行しようとしました:

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

これは私に "タイプミスマッチ"エラーメッセージを与えます。私は、次のことを試してみましたが、それは動作します:

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

しかし、それだけで再フリーズComboBox3と私は本当にそれが空である必要があります。

私は間違っていますか?ご助力ありがとうございます。

+0

'ComboBox3 =" "そしてComboBox3.Enabled = False'構文が間違っています。これら2つのステートメントを2つの異なる行に書いて、' And'を削除してください。 –

答えて

2

私はあなたはそれが同じ行になりたい場合は、

コード形式の使用についてそのfussedない場合、その後

If ComboBox2 = vbNullString Then 
    ComboBox3 = vbNullString: ComboBox3.Enabled = False 
End If 

を使用あなたは間違って

Andを使用していると思います

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

空き引用符の代わりにvbNullStringを使用することをお勧めします。

+0

ありがとうございます。これは完全にこのように動作します! – franciscofcosta