Slik bruker du Select Case Structure i Excel 2016 VBA

Select Case-strukturen er en nyttig VBA-struktur for beslutninger som involverer tre eller flere alternativer i Excel 2016 (selv om den også fungerer med to alternativer, og gir et alternativ til If-Then-Else-strukturen).

Et eksempel på Select Case

Følgende eksempel viser hvordan du bruker strukturen Velg sak:

Sub ShowRabatt3()
  Dim mengde så lenge
  Dim rabatt som dobbel
  Mengde = InputBox(“Skriv inn mengde: “)
  Velg Saksantall
    Sak 0 til 24
      Rabatt = 0,1
    Sak 25 til 49
      Rabatt = 0,15
    Sak 50 til 74
      Rabatt = 0,2
    Saken er >= 75
      Rabatt = 0,25
  Avslutt Velg
  MsgBox "Rabatt: " & rabatt
End Sub

I dette eksemplet blir Mengde-variabelen evaluert. Rutinen kontrollerer for fire forskjellige tilfeller (0–24, 25–49, 50–74 og 75 eller høyere).

Et hvilket som helst antall utsagn kan følge hver saksutsagn, og de utføres alle hvis saken er sann. Hvis du bare bruker én setning, som i dette eksemplet, kan du sette setningen på samme linje som nøkkelordet Case, etterfulgt av et kolon – VBA-setningsskilletegnet. Dette gjør koden mer kompakt og litt tydeligere. Slik ser rutinen ut i dette formatet:

Sub ShowRabatt4 ()
  Dim mengde så lenge
  Dim rabatt som dobbel
  Mengde = InputBox(“Skriv inn mengde: “)
  Velg Saksantall
    Tilfelle 0 til 24: Rabatt = 0,1
    Sak 25 til 49: Rabatt = 0,15
    Tilfelle 50 til 74: Rabatt = 0,2
    Case Is >= 75: Rabatt = 0,25
  Avslutt Velg
  MsgBox "Rabatt: " & rabatt
End Sub

Når VBA kjører en Select Case-struktur, avsluttes strukturen så snart VBA finner en sann sak og utfører setningene for den saken.

Et nestet Select Case-eksempel

Som vist i følgende eksempel, kan du neste Select 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 melding som streng
  Velg Case IsEmpty (ActiveCell)
    Tilfelle sant
     Msg = "er tom."
    Case Else
     Velg Case ActiveCell.HasFormula
       Tilfelle sant
        Msg = "har en formel"
       Case Else
        Velg Sak IsNumeric (ActiveCell)
          Tilfelle sant
           Msg = "har et nummer"
          Case Else
           Msg = "har tekst"
        Avslutt Velg
    Avslutt Velg
  Avslutt Velg
  MsgBox "Cell" & ActiveCell.Address & " " & Msg
End Sub

Logikken er omtrent slik:

Finn ut om cellen er tom.

Hvis den ikke er tom, se om den inneholder en formel.

Hvis det ikke er noen formel, finn ut om den inneholder en numerisk verdi eller tekst.

Når rutinen avsluttes, inneholder Msg-variabelen en streng som beskriver cellens innhold. MsgBox-funksjonen viser den meldingen.

Slik bruker du Select Case Structure i Excel 2016 VBA

En melding som vises av CheckCell-prosedyren.

Du kan neste Select Case-strukturer så dypt 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 innrykkkode er verdt innsatsen, fungerer den forrige oppføringen som et godt eksempel. Fordypningene virkelig for å gjøre hekkenivåene klare. Ta en titt på samme prosedyre uten innrykk:

Sub CheckCell()
Dim melding som streng
Velg Case IsEmpty (ActiveCell)
Tilfelle sant
Msg = "er tom."
Case Else
Velg Case ActiveCell.HasFormula
Tilfelle sant
Msg = "har en formel"
Case Else
Velg Sak IsNumeric (ActiveCell)
Tilfelle sant
Msg = "har et nummer"
Case Else
Msg = "har tekst"
Avslutt Velg
Avslutt Velg
Avslutt Velg
MsgBox "Cell" & ActiveCell.Address & " " & Msg
End Sub

Ganske uforståelig, ikke sant?


Hvordan blokkere Microsoft Word fra å åpne filer i skrivebeskyttet modus på Windows

Hvordan blokkere Microsoft Word fra å åpne filer i skrivebeskyttet modus på Windows

Hvordan blokkere Microsoft Word fra å åpne filer i skrivebeskyttet modus på Windows Microsoft Word åpner filer i skrivebeskyttet modus, noe som gjør det umulig å redigere dem? Ikke bekymre deg, metodene er nedenfor

Hvordan fikse feil utskrift av Microsoft Word-dokumenter

Hvordan fikse feil utskrift av Microsoft Word-dokumenter

Slik fikser du feil ved utskrift av feil Microsoft Word-dokumenter Feil ved utskrift av Word-dokumenter med endrede fonter, rotete avsnitt, manglende tekst eller tapt innhold er ganske vanlig. Men ikke gjør det

Slett penn- og highlighter-tegninger på PowerPoint-lysbilder

Slett penn- og highlighter-tegninger på PowerPoint-lysbilder

Hvis du har brukt pennen eller merkepennen til å tegne på PowerPoint-lysbildene dine under en presentasjon, kan du lagre tegningene til neste presentasjon eller slette dem, slik at du neste gang du viser dem starter med rene PowerPoint-lysbilder. Følg disse instruksjonene for å slette penn- og merkepenntegninger: Slette linje én på […]

Style Library-innhold i SharePoint 2010

Style Library-innhold i SharePoint 2010

Stilbiblioteket inneholder CSS-filer, Extensible Stylesheet Language-filer (XSL) og bilder som brukes av forhåndsdefinerte mastersider, sideoppsett og kontroller i SharePoint 2010. For å finne CSS-filer i stilbiblioteket til et publiseringsnettsted: Velg Site Actions→ View Alt innhold på nettstedet. Innholdet på nettstedet vises. Style-biblioteket ligger i […]

Formater tall i tusenvis og millioner i Excel-rapporter

Formater tall i tusenvis og millioner i Excel-rapporter

Ikke overveld publikum med gigantiske tall. I Microsoft Excel kan du forbedre lesbarheten til dashbordene og rapportene dine ved å formatere tallene dine slik at de vises i tusenvis eller millioner.

Hvordan dele og følge SharePoint-nettsteder

Hvordan dele og følge SharePoint-nettsteder

Lær hvordan du bruker SharePoints sosiale nettverksverktøy som lar enkeltpersoner og grupper kommunisere, samarbeide, dele og koble til.

Hvordan konvertere datoer til julianske formater i Excel

Hvordan konvertere datoer til julianske formater i Excel

Julianske datoer brukes ofte i produksjonsmiljøer som et tidsstempel og hurtigreferanse for et batchnummer. Denne typen datokoding lar forhandlere, forbrukere og serviceagenter identifisere når et produkt ble laget, og dermed alderen på produktet. Julianske datoer brukes også i programmering, militæret og astronomi. Forskjellig […]

Hvordan lage en Access Web App

Hvordan lage en Access Web App

Du kan lage en nettapp i Access 2016. Så hva er en nettapp egentlig? Vel, nettet betyr at det er online, og appen er bare en forkortelse for "applikasjon". En Custom Web App er en online databaseapplikasjon som du får tilgang til fra skyen ved hjelp av en nettleser. Du bygger og vedlikeholder nettappen i skrivebordsversjonen […]

Hurtigstartlinje i SharePoint 2010

Hurtigstartlinje i SharePoint 2010

De fleste sidene i SharePoint 2010 viser en liste over navigasjonskoblinger på hurtigstartlinjen langs venstre side av siden. Hurtigstartlinjen viser koblinger til innhold på nettstedet som lister, biblioteker, nettsteder og publiseringssider. Hurtigstartlinjen inneholder to svært viktige lenker: Linken for alt nettstedinnhold: […]

Hva betyr løserfeilmeldingene i Excel?

Hva betyr løserfeilmeldingene i Excel?

For enkle problemer finner Solver i Excel vanligvis raskt de optimale Solver-variabelverdiene for objektivfunksjonen. Men i noen tilfeller har Solver problemer med å finne Solver-variabelverdiene som optimerer objektivfunksjonen. I disse tilfellene viser Solver vanligvis en melding eller en feilmelding som beskriver eller diskuterer problemet som […]