Slik bruker du for hver neste løkker med samlinger i VBA Excel 2016

VBA støtter enda en type looping i Excel 2016: looping gjennom hvert objekt i en samling av objekter. En samling består som du kanskje vet av en rekke gjenstander av samme type. For eksempel har Excel en samling av alle åpne arbeidsbøker (Arbeidsboksamlingen), og hver arbeidsbok har en samling regneark (Arbeidsarksamlingen).

Når du trenger å gå gjennom hvert objekt i en samling, bruk For Every-Next-strukturen. Følgende eksempel går gjennom hvert regneark i den aktive arbeidsboken og sletter regnearket hvis det er tomt:

Sub DeleteEmptySheets()
  Dim WkSht som arbeidsark
  Application.DisplayAlerts = False
  For hver WkSht i ActiveWorkbook.Worksheets
    Hvis WorksheetFunction.CountA(WkSht.Cells) = 0 Da
      WkSht.Delete
    Slutt om
  Neste WkSht
  Application.DisplayAlerts = Sant
End Sub

I dette eksemplet er variabelen WkSht en objektvariabel som representerer hvert regneark i arbeidsboken. Ingenting er spesielt med variabelnavnet WkSht; du kan bruke hvilket som helst variabelnavn du liker.

Koden går gjennom hvert regneark og bestemmer et tomt ark ved å telle de ikke-blanke cellene. Hvis antallet er null, er arket tomt, og det slettes. Legg merke til at DisplayAlerts-innstillingen er slått av mens loopen gjør sitt. Uten den uttalelsen dukker Excel opp en advarsel hver gang et ark er i ferd med å bli slettet.

Hvis alle regnearkene i arbeidsboken er tomme, får du en feilmelding når Excel prøver å slette det eneste arket. Normalt vil du skrive kode for å håndtere den situasjonen.

Her er et annet For Every-Next eksempel. Denne prosedyren bruker en løkke for å skjule alle regnearkene i den aktive arbeidsboken bortsett fra det aktive arket.

Sub HideSheets()
  Dim Sht Som arbeidsark
  For hver Sht i ActiveWorkbook.Worksheets
    Hvis Sht.Name <> ActiveSheet.Name Da
      Sht.Visible = xlSheetHidden
    Slutt om
  Neste Sht
End Sub

HideSheets-prosedyren kontrollerer arknavnet. Hvis det ikke er det samme som navnet på det aktive arket, er arket skjult. Legg merke til at Visible-egenskapen ikke er boolsk. Denne egenskapen kan faktisk ta på seg en av tre verdier, og Excel har tre innebygde konstanter. Hvis du er nysgjerrig på den tredje muligheten (xlVeryHidden), sjekk hjelpesystemet.

Det som blir skjult må til slutt vises, så her er en makro som viser alle regnearkene i den aktive arbeidsboken:

Sub UnhideSheets()
  Dim Sht Som arbeidsark
  For hver Sht i ActiveWorkbook.Worksheets
    Sht.Visible = xlSheetVisible
  Neste Sht
End Sub

Ikke overraskende kan du lage nestede For Every-Next-løkker. CountBold-prosedyren går gjennom hver celle i det brukte området på hvert regneark i hver åpne arbeidsbok og viser en telling av antall celler som er formatert med fet skrift:

Sub CountFet skrift()
  Dim WBook Som arbeidsbok
  Dim WSheet som arbeidsark
  Dim celle som rekkevidde
  Dim Cnt As Long
  For hver WBook i arbeidsbøker
    For hvert WSark i WBook.Worksheets
      For hver celle i WSheet.UsedRange
        Hvis Cell.Font.Bold = True, så Cnt = Cnt + 1
      Neste celle
    Neste WSark
  Neste WBook
  MsgBox Cnt & "fet celler funnet"
End Sub

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 […]