Wenn-dann-Anweisung in VBA
Schreibe ich momentan zwei Sätze von if-else-Anweisungen, die sehr ähnlich sind. Sie sind im Grunde vergleichen Sie drei drop-down-Menüs und sicherzustellen, dass der Benutzer nicht legte zwei passende Voreinstellungen. Zum Beispiel:
cbo_fac1 - Kitchen
cbo_fac2 - Kitchen
cbo_fac3 - Lounge
Dies würde eine Fehlermeldung zurückgeben, weil cbo_fac1 und cbo_fac2 übereinstimmen. Aber es ist ein besonderer Fall bin ich kämpfen, um Sie zu implementieren. Eine der drop-down-Fällen ist Keine Präferenz.
cbo_fac1 - Kitchen
cbo_fac2 - No preference
cbo_fac3 - No preference
cbo_fac1 - No preference
cbo_fac2 - No preference
cbo_fac3 - No preference
Mit jedem Szenario Keine Präferenz Auswahl erlaubt ist, zu entsprechen. Wie gehe ich über die Umsetzung dieser? Hier ist der code, den ich verwende so weit:
If cbo_fac1.Value = cbo_fac2.Value Then
MsgBox ("Facilities preference 1 and facilities preference 2 cannot be the same. Please select another option for facilities preference 2, if you have none then select 'No preference'")
Exit Sub
End If
If cbo_fac1.Value = cbo_fac3.Value Then
MsgBox ("Facilities preference 1 and facilities preference 3 cannot be the same. Please select another option for facilities preference 3, if you have none then select 'No preference'")
Exit Sub
End If
If cbo_fac2.Value = cbo_fac3.Value Then
MsgBox ("Facilities preference 2 and facilities preference 3 cannot be the same. Please select another option for facilities preference 3, if you have none then select 'No preference'")
Exit Sub
End If
InformationsquelleAutor methuselah | 2012-10-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie möchten, schreiben Sie es als eine riesige if-Anweisung, sollte dies tun:
Edit:
Nur weil hier der umgekehrte Weg, mit einer möglichen msgbox:
InformationsquelleAutor Daniel
Etwas überprüfen wie
Tun die gleiche Prüfung für die anderen 2 WENN-Bedingungen.
UPDATE:
Gibt es einen anderen Weg, durch das schreiben einer Funktion
Unten ist die sample-Funktion.
Aufruf dieser Funktion für 3 Kombinationen
Ja, Sie können dies erreichen, schreiben einer Funktion. Siehe mein Beispiel-Funktion, die ich aktualisiert habe in meiner Antwort.
Diese müssen neu geschrieben werden leicht, wenn Sie wollen, es zu exit sub, weil jetzt es keine Möglichkeit gibt, den code zu wissen, ob die PreferenceCheck bestanden hat oder nicht. Ich würde empfehlen, die änderung der sub eine Funktion, die einen booleschen Wert zurückgibt und dann legte Sie alle preferencechecks in einer if-getrennt mit ANDs.
InformationsquelleAutor Siva Charan