eval (ez_write_tag ([[468,60], „sourcedaddy_com-box-3”, „ezslot_1”, 102, „0”, „0”])); instrukcja Select Case
MS-Excel / General Formatting
Wykonywanie wielu testów za pomocą If … ElseIf jest przydatną techniką – jest to „narzędzie VBA”, do którego często sięgasz. Jednak szybko staje się nieporęczny, ponieważ liczba testów, które musisz wykonać, rośnie. Jest w porządku dla dwóch lub trzech testów, ale więcej niż to utrudnia śledzenie logiki.
W takich sytuacjach instrukcja Select Case w języku VBA jest lepszym wyborem. Chodzi o to, aby na początku podać wyrażenie logiczne, a następnie podać listę możliwych wyników. Dla każdego możliwego wyniku, zwanego przypadkiem, podajesz jedną lub więcej instrukcji VBA do wykonania, jeśli sprawa okaże się prawdziwa. Oto składnia:
Select Case TestExpression Case FirstCaseList Case SecondCaseList <etc> Case Else End Select
TestExpression
To wyrażenie jest oceniane na początku struktury. musi zwracać wartość (logiczną, liczbową, ciągiem itd.).
CaseList
Lista co najmniej jednego możliwego wyniku dla TestExpression. Te wyniki to wartości lub wyrażenia oddzielone przecinkami. VBA sprawdza każdy element w list, aby sprawdzić, czy jedno z nich jest zgodne z TestExpression. Wyrażenia mogą przyjmować dowolną z następujących form:ExpressionExpression To ExpressionIs LogicalOperator ExpressionSłowo kluczowe To definiuje zakres wartości (na przykład od 1 do 10) . Słowo kluczowe Is definiuje otwarty zakres wartości (na przykład Is > = 100).
Instrukcje
Są to instrukcje, które VBA uruchamia, jeśli jakakolwiek część powiązana lista CaseList pasuje do TestExpression. VBA uruchamia opcjonalne ElseStatements, jeśli żadna CaseList nie zawiera dopasowania dla TestExpression.
Uwaga: Jeśli więcej niż jedna CaseList zawiera element, który pasuje TestExpression, VBA uruchamia tylko instrukcje powiązane z CaseList, która pojawia się jako pierwsza w strukturze Select Case.
Lista pokazuje, jak użyć Select Case do rozwiązania problemu z argumentem Frequency.
Procedura, która używa Wybierz przypadek, aby przetestować wiele wartości Przykład Wybierz przypadek: zamiana wyników testu na oceny literowe
Aby pomóc Ci lepiej zrozumieć instrukcję Select Case, przyjrzyjmy się innemu przykładowi, który lepiej prezentuje wyjątkowe talenty tego potężnego Struktura. Załóżmy, że chcesz napisać procedurę, która przekształca surowy wynik testu na ocenę literową zgodnie z poniższą tabelą:
Wynik surowy | Letter Grade |
90 i więcej | A |
Od 80 do 89 | B |
Od 70 do 79 | C |
Między 60 a 69 | D |
Mniej niż 60 | F |
Listing przedstawia procedurę LetterGrade, która używa instrukcji Select Case do wykonania konwersji.
Argument rawScore jest wartością całkowitą z przedziału od 0 do 100. Struktura Select Case najpierw sprawdza, czy wynik rawScore jest ujemny, a jeśli tak, funkcja zwraca komunikat o błędzie. Następna instrukcja Case sprawdza, czy wynik jest mniejszy niż 60, a funkcja zwraca literę „F”, jeśli tak. Następna instrukcja Case szuka wyniku, który jest mniejszy niż 70. Jeśli dojdziemy tak daleko, już wiemy (dzięki poprzedniej instrukcji Case), że wynik wynosi co najmniej 60. Dlatego ten przypadek naprawdę sprawdza, czy wynik jest od 60 do 70 (w tym 60, ale nie w tym 70). Jeśli tak, zwraca się literę „D”. Reszta oświadczeń Case przebiega w ten sam sposób. Case Elsechecks dla wyniku większego niż 100 i zwraca inny komunikat o błędzie, jeśli tak jest.
Inny przykład: oswajanie funkcji RGB
Funkcji VBA RGB (czerwony, zielony, niebieski) można używać w dowolnym momencie określić kolor właściwości. Każdy z trzech nazwanych argumentów (czerwony, zielony i niebieski) to liczby całkowite od 0 do 255, które określają, jak dużo każdego koloru składowego jest mieszane z kolorem końcowym. Na przykład w składniku czerwonym 0 oznacza brak czerwieni, a 255 oznacza obecność czystej czerwieni. Jeśli wszystkie trzy wartości są takie same, otrzymasz odcień szarości.
Oto kilka przykładowych wartości dla każdego komponentu, który generuje typowe kolory:
Czerwony | Niebieski | Zielony | Wynik |
0 | 0 | 0 | Czarny |
0 | 0 | 255 | Niebieski |
0 | 255 | 0 | Zielony |
0 | 255 | 255 | Cyjan |
255 | 0 | 0 | Czerwony |
255 | 0 | 255 | Margenta |
255 | 255 | 0 | Żółty |
255 | 255 | 255 | Biały |
Jednak zamiast zapamiętywać te kombinacje, zastosujmy VBA i Select Case, aby ułatwić wybór kolorów. pokazuje funkcję VBAColor, która pozwala używać nazw (na przykład „czerwony” lub „niebieski”) zamiast tajemniczego numb er kombinacji, aby ustawić 16 najpopularniejszych kolorów.
Funkcja, która przyjmuje nazwę koloru jako ciąg i zwraca odpowiednią wartość RGB
VBAColor przyjmuje pojedynczy argument, colorName, który jest nazwą koloru, chcę współpracować. Zwróć uwagę, jak instrukcja Select Case masuje argument, aby zapobiec błędom:
Select Case LCase(Trim(colorName))
Funkcja Trim usuwa wszelkie zbędne spacje na początku i koniec argumentu, a funkcja LCase konwertuje colorName na małe litery. Zapewnia to, że funkcja nie rozróżnia wielkości liter, co oznacza, że nie ma znaczenia, czy wyślesz czarny, czarny czy czarny: funkcja nadal będzie działać.
Reszta funkcji używa instrukcji Case do różne nazwy kolorów i zwróć odpowiednią wartość RGB. Możesz użyć procedury ColorTester, aby nadać wir VBAColora. Ta procedura po prostu formatuje kolor czcionki aktualnie wybranej komórki arkusza.
Uwaga: VBA definiuje również osiem stałych kolorów, które możesz użyć, gdy potrzebujesz tylko podstawowych kolorów: vbBlack, vbBlue, vbCyan, vbGreen, vbMagenta, vbRed, vbWhite i vbYellow.