Innehållsförteckning:
- Ett exempel på fallfall
- Som visas i följande exempel kan du näsa Välj fallstrukturer. Denna rutin granskar den aktiva cellen och visar ett meddelande som beskriver cellens innehåll. Observera att proceduren har tre Select Case-strukturer, och var och en har sitt eget End Select-meddelande:
Video: Excel VBA Arrays: Practical Example of a 2 dimensional array to create a New Workbook 2024
Select-strukturen är en användbar VBA-struktur för beslut som involverar tre eller flera alternativ i Excel 2016 (även om det också fungerar med två alternativ, vilket ger ett alternativ till If-Then-Else-strukturen).
Ett exempel på fallfall
Följande exempel visar hur du använder Select Case-strukturen:
Sub ShowDiscount3 () Mått Antal Så lång Dim Dimension Som Dubbel Mängd = InputBox ("Ange Mängd:") Välj Case Quantity Fall 0 till 24 rabatt = 0. 1 fall 25 till 49 rabatt = 0. 15 fall 50 till 74 rabatt = 0. 2 fall är> = 75 rabatt = 0. 25 Slut Välj MsgBox "rabatt:" och rabatt slut del > I det här exemplet utvärderas kvantitetsvariabeln. Rutinen kontrollerar i fyra olika fall (0-24, 25-49, 50-74 och 75 eller högre).
Sub ShowDiscount4 () Mått Antal Långt Dim Rabatt Som Dubbel Mängd = InputBox ("Ange Mängd:") Välj Case Mängd Fall 0 Till 24: Rabatt = 0. 1 Fall 25 Till 49: rabatt = 0. 15 fall 50 till 74: rabatt = 0. 2 fall är> = 75: rabatt = 0. 25 Slut Välj MsgBox "rabatt:" & rabatt Slut Sub
När VBA exekverar en Select Case struktur, Strukturen avslutas så snart VBA finner ett sant fall och verkställer uttalandena för det fallet.
Som visas i följande exempel kan du näsa Välj fallstrukturer. Denna rutin granskar den aktiva cellen och visar ett meddelande som beskriver cellens innehåll. Observera att proceduren har tre Select Case-strukturer, och var och en har sitt eget End Select-meddelande:
Sub CheckCell () Dim Msg som String Select Case Är TrueMsg = "tomt. "Case Else Select Case ActiveCell. HasFormula Case True Msg = "har en formel" Case Else Select Case ÄrNumeric (ActiveCell) Fall True Msg = "har ett nummer" Case Else Msg = "har text" Slut Välj Slut Välj Slut Välj MsgBox "Cell" & ActiveCell. Adress & "" & Msg slutet Sub
Logiken går något så här:
-
Om det inte är tomt, se om det innehåller en formel.
-
Om det inte finns någon formel, ta reda på om det innehåller ett numeriskt värde eller en text.
-
När rutinen slutar innehåller Msg-variabeln en sträng som beskriver cellens innehåll. MsgBox-funktionen visar det meddelandet.
Ett meddelande som visas med CheckCell-proceduren.
Du kan näsa Välj Case-strukturer så djupt som du behöver, men se till att varje Select Case-utskrift har ett motsvarande slutval.Om du fortfarande inte är övertygad om att inloggningskoden är värt ansträngningen, tjänar den tidigare noteringen som ett bra exempel. Inryckningarna gör verkligen nestningsnivåerna tydliga. Ta en titt på samma procedur utan några indrag:
Sub CheckCell () Dim Msg Som String Select Case Är Empty (ActiveCell) Fall True Msg = "är tomt. "Case Else Select Case ActiveCell. HasFormula Case True Msg = "har en formel" Case Else Select Case ÄrNumeric (ActiveCell) Fall True Msg = "har ett nummer" Case Else Msg = "har text" Slut Välj Slut Välj Slut Välj MsgBox "Cell" & ActiveCell. Adress & "" & Msg slutet Sub
Tämligen oförståelig, eh?