eval (ez_write_tag ([[468,60], „sourcedaddy_com-box-3“, „ezslot_1“, 102, „0“, „0“])); Použití Select Case Statement
MS-Excel / General Formatting
Provádění více testů pomocí If … ElseIf je praktická technika – je to nástroj VBA, na který se docela často snažíte. S rostoucím počtem testů, které potřebujete provést, se však rychle stává nepraktickým. Pro dva nebo tři testy je to v pořádku, ale o nic víc to logiku ztíží.
Pro tyto situace je lepší volbou prohlášení Select VBA. Myšlenka je, že na začátku poskytnete logický výraz a poté uvedete řadu možných výsledků. Foreach possible result-called a case-you provide one or more VBA commands to executeshould the case ukázať jako pravdivé. Zde je syntaxe:
Select Case TestExpression Case FirstCaseList Case SecondCaseList <etc> Case Else End Select
TestExpression
Tento výraz je vyhodnocen na začátku struktury. musí vrátit hodnotu (logickou, číselnou, řetězcovou atd.).
CaseList
Seznam jednoho nebo více možných výsledků pro TestExpression. Tyto výsledky jsou hodnoty nebo výrazy oddělené čárkami. VBA zkoumá každý prvek v seznam a zjistěte, zda odpovídá TestExpression. Výrazy mohou mít kteroukoli z následujících forem:ExpressionExpression To ExpressionIs LogicalOperator ExpressionKlíčové slovo To definuje rozsah hodnot (například 1 až 10) Klíčové slovo Is definuje otevřený rozsah hodnot (například Is > = 100).
Příkazy
Toto jsou příkazy, které VBA spustí, pokud je některá část přidružený CaseList odpovídá TestExpression. VBA spustí volitelné ElseStatements, pokud žádný CaseList neobsahuje shodu pro TestExpression.
Poznámka: Pokud více než jeden CaseList obsahuje prvek, který odpovídá TestExpression, VBA spouští pouze příkazy spojené s CaseList, které se zobrazují jako první ve struktuře Select Case.
Výpis ukazuje, jak byste pomocí Select Case zpracovali problém s argumentem Frequency.
Procedura, která používá Vyberte případ k otestování více hodnot Příklad vybraného případu: Převedení skóre testu na stupně písmen
Abychom vám pomohli získat lepší pocit z příkazu Vybrat případ, podívejme se na další příklad, který lépe předvede jedinečné talenty tohoto mocného struktura. Předpokládejme, že chcete napsat postup, který převede hrubé skóre testu na známku podle následující tabulky:
Surové skóre | Třída písmen |
90 a více | A |
mezi 80 a 89 | B |
mezi 70 a 79 | C |
mezi 60 a 69 | D |
méně než 60 | F |
Výpis zobrazuje proceduru LetterGrade, která k provedení převodu používá příkaz Select Case.
Argument rawScore je celočíselná hodnota mezi 0 a 100. Struktura Select Case nejprve zkontroluje, zda je rawScore záporné, a pokud ano, vrátí funkci chybovou zprávu. Následující příkaz Case zkontroluje, zda je skóre menší než 60, a funkce vrátí známku „F“, pokud je. Následující příkaz Case hledá skóre, které je menší než 70. Pokud se dostaneme tak daleko, už víme (díky předchozímu prohlášení Case), že skóre je minimálně 60. Proto tento případ opravdu kontroluje, zda skóre není mezi 60 a 70 (včetně 60, ale bez 70). Pokud ano, vrátí se písmeno „D“. Zbytek případových prohlášení probíhá stejným způsobem. Případ Elsechecks pro skóre větší než 100 a vrátí jinou chybovou zprávu, pokud je.
Další příklad: Zkrocení funkce RGB
Funkci VBA RGB (červená, zelená, modrá) můžete použít kdykoli potřebujete určit barvu vlastnosti. Každý ze tří pojmenovaných argumentů (červený, zelený a modrý) jsou celá čísla mezi 0 a 255, která určují, kolik barvy každé složky je smícháno do konečné barvy. Například v červené složce 0 znamená, že není přítomna žádná červená a 255 znamená, že je přítomna čistá červená. Pokud jsou všechny tři hodnoty stejné, získáte odstín šedé.
Zde je několik ukázkových hodnot pro každou komponentu, která vytváří společné barvy:
Červená | Modrá | Zelená | Výsledek |
0 | 0 | 0 | černá |
0 | 0 | 255 | modrá |
0 | 255 | 0 | zelená |
0 | 255 | 255 | azurová |
255 | 0 | 0 | červená |
255 | 0 | 255 | Margenta |
255 | 255 | 0 | Žlutá |
255 | 255 | 255 | Bílá |
Spíše než si tyto kombinace zapamatovat, necháme však pracovat s VBA a Select Case, aby byl výběr barev snazší. zobrazuje funkci VBAColor, která umožňuje používat jména (například „červená“ nebo „modrá“) namísto kryptického znecitlivění Kombinace pro nastavení 16 nejběžnějších barev.
Funkce, která přijímá název barvy jako řetězec a vrací odpovídající hodnotu RGB
VBAColor přebírá jediný argument colorName, což je název barvy, kterou chcete chci pracovat s. Všimněte si, jak příkaz Select Case masíruje argument, aby se zabránilo chybám:
Select Case LCase(Trim(colorName))
Funkce Oříznout odstraní na začátku všechny nadbytečné mezery a konec argumentu a funkce LCase převede colorName na malá písmena. Tím je zajištěno, že funkce nerozlišuje velká a malá písmena, což znamená, že nezáleží na tom, zda posíláte černé, ČERNÉ nebo Černé: Funkce bude i nadále fungovat.
Zbytek funkce používá příkazy Case ke kontrole různé názvy barev a vrátit příslušnou hodnotu RGB. K vytvoření víru VBAColora můžete použít postup ColorTester. Tento postup pouze naformátuje barvu písma aktuálně vybrané buňky listu.
Poznámka: VBA také definuje osm barevných konstant, které můžete použít, když potřebujete pouze základní barvy: vbBlack, vbBlue, vbCyan, vbGreen, vbMagenta, vbRed, vbWhite a vbYellow.