Innholdsfortegnelse:
- Eksempler på et eksempel på tilfelle
- Som vist i det følgende eksemplet kan du nese Velg Case-strukturer. Denne rutinen undersøker den aktive cellen og viser en melding som beskriver cellens innhold. Legg merke til at prosedyren har tre Select Case-strukturer, og hver har sin egen End Select-setning:
Video: 20 Essential Excel Functions with Downloadable Reference Guide 2024
Select-strukturen er en nyttig VBA-struktur for beslutninger som involverer tre eller flere alternativer i Excel 2016 (selv om det også fungerer med to alternativer, gir et alternativ til If-Then-Else-strukturen).
Eksempler på et eksempel på tilfelle
Følgende eksempel viser hvordan du bruker Select Case-strukturen:
Sub ShowDiscount3 () Dim. Antall så lang dim rabatt som dobbelt mengde = InputBox ("Enter Quantity:") Velg Case Quantity Sak 0 til 24 rabatt = 0. 1 sak 25 til 49 rabatt = 0. 15 sak 50 til 74 rabatt = 0. 2 sak er> = 75 rabatt = 0. 25 slutt velg MsgBox "rabatt:" og rabatt slutten sub > I dette eksemplet blir kvantevariabelen evaluert. Rutinen kontrollerer fire forskjellige tilfeller (0-24, 25-49, 50-74 og 75 eller høyere).
Sub ShowDiscount4 () Dim Antall As Long Dim Rabatt Som Double Quantity = InputBox ("Enter Quantity:") Velg Case Quantity Case 0 Til 24: Rabatt = 0. 1 Case 25 To 49: Rabatt = 0. 15 Sak 50 til 74: Rabatt = 0. 2 Sak er> = 75: Rabatt = 0. 25 Slutt Velg MsgBox "Rabatt:" & Rabatt End Sub
Når VBA utfører en Select Case struktur, strukturen avsluttes så snart VBA finner et sant tilfelle og utfører uttalelsene for den saken.
Som vist i det følgende eksemplet kan du nese Velg Case-strukturer. Denne rutinen undersøker den aktive cellen og viser en melding som beskriver cellens innhold. Legg merke til at prosedyren har tre Select Case-strukturer, og hver har sin egen End Select-setning:
Sub CheckCell () Dim Msg Som String Select Case Egentlig Msg = "er tomt. "Case Else Select Case ActiveCell. HasFormula Case True Msg = "har en formel" Case Else Select Case ErNumeric (ActiveCell) sak True Msg = "har et nummer" Case Else Msg = "har tekst" End Velg End Velg Velg End Velg MsgBox "Cell" & ActiveCell. Adresse & "" & Msg End Sub
Logikken går noe slikt:
-
Hvis det ikke er tomt, se om det inneholder en formel.
-
Hvis det ikke finnes noen formel, finn ut om den inneholder en numerisk verdi eller tekst.
-
Når rutinen slutter, inneholder Msg-variabelen en streng som beskriver cellens innhold. MsgBox-funksjonen viser denne meldingen.
En melding som vises ved hjelp av CheckCell-prosedyren.
Du kan nese Velg Case-strukturer så dypt som du trenger, men sørg for at hver Select Case-setning har en tilsvarende End Select-setning.Hvis du fortsatt ikke er overbevist om at inntrengingskoden er verdt innsatsen, fungerer den forrige noteringen som et godt eksempel. Indrykkene virkelig gjør nestingsnivåene klare. Ta en titt på samme prosedyre uten innrykk:
Sub CheckCell () Dim Msg Som String Velg Case ErEmpty (ActiveCell) Case True Msg = "er tomt. "Case Else Select Case ActiveCell. HasFormula Case True Msg = "har en formel" Case Else Select Case ErNumeric (ActiveCell) sak True Msg = "har et nummer" Case Else Msg = "har tekst" End Velg End Velg Velg End Velg MsgBox "Cell" & ActiveCell. Adresse & "" & Msg End Sub
Ganske uforståelig, eh?