2016-12-16 2 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 

"Type Mismatch"오류 메시지가 나타납니다. 나는 다음을 시도, 그것은 작동합니다

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

그러나, 그것은 단지 ComboBox3을 다시 얼고 난 정말 비어를해야합니다.

내가 뭘 잘못하고 있니? 당신의 도움을 주셔서 대단히 감사합니다. 당신이 다음 코드 형식에 대한 그 법석을 떨게하지 않은 경우

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

을 사용하여 사용이 같은 줄에하려면

+0

'ComboBox3 = ""그리고 ComboBox3.Enabled = False' 잘못된 구문,이 두 문장을 서로 다른 두 줄에 쓰고'And'를 제거하십시오. –

답변

2

내가 잘못

And을 사용하고 생각

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

공백 따옴표 대신 vbNullString을 사용하는 것이 더 좋습니다

+0

고맙습니다. 이 방법으로 완벽하게 작동합니다! – franciscofcosta