2016-12-13 15 views
0

Ich habe eine Reihe von ComboBoxes, die basierend auf der vorherigen ComboBox Auswahl bestückt sind. So wird z. B. ComboBox3 basierend auf dem in ComboBox2 ausgewählten Wert ausgefüllt. Der "Trigger" zum Auffüllen von ComboBox3 ist die DropButtonClick Aktion. Ich habe ein Meldungsfeld, wenn in ComboBox2 kein Wert ist. Dies funktioniert erfolgreich - Code unten."Rückgängig" ComboBox DropButtonClick

If Me.ComboBox2.ListIndex = -1 Then 
    MsgBox "Please select all preceding comboboxes" 
    ComboBox3.Value = "" 
    Exit Sub 
Else 
    sh.Range("B2") = Me.ComboBox2.Value 
End If 

Meine Fragen ist einmal die Message Box erscheint (als Ergebnis kein Wert in ComboBox2 ist) zeigt ComboBox3 noch abfällt Werte. Gibt es eine Möglichkeit, die ComboBox3 DropButtonClick Event rückgängig zu machen, wenn in ComboBox2 kein Wert vorhanden ist, so dass ComboBox3 niemals abfällt?

+0

nicht sicher, was Sie genau sind gefragt. Ich hätte die eigentliche 'Private Sub'-Deklaration in die Post eingefügt, um mehr Kontext zu erhalten; kannst du [bearbeiten], um zu klären, was du "entkommen" meinst? –

+0

Bearbeitete Frage für Klarheit. Vielen Dank. – Chris2015

+1

Sie können ComboBox3 einfach deaktivieren und dann mit dem ComboBox2-Ereignis aktivieren. –

Antwort

1

Sie können sofort das Drop-down-Fenster der Combo-Box in die Nähe der „ESC“ Taste simulieren:

MsgBox "Please select all preceding comboboxes" 
    ComboBox3.Value = "" 

    ' close immediately the combo's dropdown window 
    SendKeys "{ESC}{ESC}" 
+1

Danke das hat gut funktioniert. Ich habe einen Exit Sub hinzugefügt – Chris2015

0

Ist das etwas für dich?

If Me.ComboBox2.Value = "" Then 
    ComboBox2.SetFocus 
Else 
    sh.Range("B2") = Me.ComboBox2.Value 
End If 

Wenn Sie auf den Dropbutton von combobox3 klicken, geht es automatisch zurück zu combobox2.