ich mehrere benannte Bereiche für einen boolean True/False
Wert überprüfen möchten. Ich muss die 1-Zelle Validierungsbereiche überprüfen (in der Reihenfolge) und wenn das Ergebnis True
ist, muss ich .Select
den entsprechenden benannten Bereich (dh den benannten Bereich ohne das entsprechende "validation_"
Präfix und das Unterprogramm zu verlassen. Der folgende Code funktioniert, aber es ist nicht DRYLooping durch mehrere benannte Bereiche und gehen ähnlich benannten Bereich VBA
Hier ist ein Ausschnitt den Kern der Frage zu erhalten, aber diese If-ElseIf
weiterhin für viele andere benannte Bereiche:.
If Range("validation_name") = True Then
Range("name").Select
Exit Sub
ElseIf Range("validation_category") = True Then
Range("category").Select
Exit Sub
ElseIf Range("validation_subcategory") = True Then
Range("subcategory").Select
Exit Sub
' ... and many more...
Moeglichkeiten/Fragen:
- Ich glaube, ich entweder ein Array von benannten Bereichen und eine Reihe Bereiche resultierenden „go-to“ genannt nutzen könnte?
- Vielleicht könnte ich stattdessen eine
collection
verwenden? - Nicht sicher, ob eine
for
Schleife oder einewhile
Schleife besser wäre?
Wenn Sie die Zellen in einem Bereich untersuchen, Sie wollen, wenn testen ** jede ** Zelle enthält * TRUE * oder wenn ** alle ** Zellen enthalten * TRUE * ??? –
@ Gary'sStudent Es gibt einen separaten benannten Bereich, der prüft, ob ** irgendeine ** Zelle enthält * True * - dieses Problem wird im Voraus behandelt. Dann muss ich * diese Validierungen überprüfen, damit ich zur ersten fehlerhaften Zelle gehen kann; bearbeitete Frage zur Klärung. Denken Sie daran, ein Formular auszufüllen und dann den Benutzer an den * ersten Fehlerpunkt * zu senden. – JasonAizkalns