Indholdsfortegnelse:
- Eksempler på et eksempel på eksempler
- Som vist i det følgende eksempel kan du nest Vælg Case strukturer. Denne rutine undersøger den aktive celle og viser en besked, der beskriver cellens indhold. Bemærk, at proceduren har tre Select Case strukturer, og hver har sin egen End Select-sætning:
Video: Excel Goal Seek Explained in Simple Steps 2024
Select-case-strukturen er en nyttig VBA-struktur til beslutninger, der involverer tre eller flere indstillinger i Excel 2016 (selv om det også virker med to muligheder, hvilket giver et alternativ til If-Then-Else-strukturen).
Eksempler på et eksempel på eksempler
Følgende eksempel viser, hvordan du vælger Select-case-strukturen:
Sub ShowDiscount3 () Dim Antal Som Lang Dim Rabat Som Dobbelt Mængde = InputBox ("Indtast Mængde:") Vælg Case Antal Case 0 til 24 rabat = 0. 1 tilfælde 25 til 49 rabat = 0. 15 tilfælde 50 til 74 rabat = 0. 2 tilfælde er> = 75 rabat = 0. 25 ende Vælg MsgBox "rabat:" og rabat slut del > I dette eksempel evalueres kvantitetsvariablen. Rutinen kontrollerer fire forskellige tilfælde (0-24, 25-49, 50-74 og 75 eller højere).
Sub ShowDiscount4 () Dim Antal Som Lang Dim Rabat Som Dobbelt Antal = InputBox ("Indtast Mængde:") Vælg Case Antal Case 0 Til 24: Discount = 0. 1 Case 25 To 49: Discount = 0. 15 Case 50 til 74: Discount = 0. 2 Case er> = 75: Discount = 0. 25 Afslut Vælg MsgBox "Discount:" & Discount End Sub
Når VBA udfører en Select Case struktur, strukturen er afsluttet, så snart VBA finder en sand sag og udfører erklæringerne for den sag.
Som vist i det følgende eksempel kan du nest Vælg Case strukturer. Denne rutine undersøger den aktive celle og viser en besked, der beskriver cellens indhold. Bemærk, at proceduren har tre Select Case strukturer, og hver har sin egen End Select-sætning:
Sub CheckCell () Dim Msg Som String Select Case Ægte Msg = "er tomt. "Case Else Select Case ActiveCell. HasFormula Case True Msg = "har en formel" Case Else Select Case ErNumeric (ActiveCell) sag True Msg = "har et nummer" Case Else Msg = "har tekst" Slut Vælg Slut Vælg Slut Vælg MsgBox "Cell" & ActiveCell. Adresse & "" & Msg End Sub
Logikken går noget som dette:
-
Hvis det ikke er tomt, se om det indeholder en formel.
-
Hvis der ikke er nogen formel, skal du finde ud af om den indeholder en numerisk værdi eller tekst.
-
Når rutinen slutter, indeholder Msg-variablen en streng, der beskriver cellens indhold. MsgBox-funktionen viser den besked.
En meddelelse, der vises ved CheckCell-proceduren.
Du kan nest Vælg Case strukturer så dybt som du har brug for, men sørg for, at hver Select Case-sætning har en tilsvarende End Select-sætning.Hvis du stadig ikke er overbevist om, at indtastningskoden er indsatsen værd, tjener den foregående liste som et godt eksempel. Indrykningene skal virkelig gøre det nestende niveau klart. Tag et kig på den samme procedure uden indrykning:
Sub CheckCell () Dim Msg Som String Select 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) sag True Msg = "har et nummer" Case Else Msg = "har tekst" Slut Vælg Slut Vælg Slut Vælg MsgBox "Cell" & ActiveCell. Adresse & "" & Msg End Sub
Temmelig uforståeligt, eh?