Hur man använder för varje nästa loop med samlingar i VBA Excel 2016

VBA stöder ännu en typ av looping i Excel 2016: looping genom varje objekt i en samling objekt. En samling består som du kanske vet av ett antal föremål av samma typ. Till exempel har Excel en samling av alla öppna arbetsböcker (Arbetsboksamlingen), och varje arbetsbok har en samling kalkylblad (Arbetsbladssamlingen).

När du behöver gå igenom varje objekt i en samling använder du strukturen For Every-Next. Följande exempel går igenom varje kalkylblad i den aktiva arbetsboken och tar bort kalkylbladet om det är tomt:

Sub DeleteEmptySheets()
  Dim WkSht Som arbetsblad
  Application.DisplayAlerts = False
  För varje WkSht i ActiveWorkbook.Worksheets
    Om WorksheetFunction.CountA(WkSht.Cells) = 0 Då
      WkSht.Delete
    Avsluta om
  Nästa WkSht
  Application.DisplayAlerts = Sant
Avsluta Sub

I det här exemplet är variabeln WkSht en objektvariabel som representerar varje kalkylblad i arbetsboken. Inget är speciellt med variabelnamnet WkSht; du kan använda vilket variabelnamn du vill.

Koden går igenom varje kalkylblad och bestämmer ett tomt ark genom att räkna de icke-tomma cellerna. Om antalet är noll är arket tomt och det raderas. Lägg märke till att DisplayAlerts-inställningen är avstängd medan loopen gör sitt. Utan det påståendet dyker Excel upp en varning varje gång ett ark är på väg att raderas.

Om alla kalkylblad i arbetsboken är tomma får du ett felmeddelande när Excel försöker ta bort det enda bladet. Normalt skulle du skriva kod för att hantera den situationen.

Här är ett annat exempel för varje nästa. Den här proceduren använder en loop för att dölja alla kalkylblad i den aktiva arbetsboken utom det aktiva bladet.

Sub HideSheets()
  Dim Sht Som arbetsblad
  För varje Sht i ActiveWorkbook.Worksheets
    Om Sht.Name <> ActiveSheet.Name Då
      Sht.Visible = xlSheetHidden
    Avsluta om
  Nästa Sht
Avsluta Sub

Proceduren HideSheets kontrollerar arknamnet. Om det inte är samma som det aktiva arkets namn är arket dolt. Observera att egenskapen Visible inte är boolesk. Den här egenskapen kan faktiskt anta vilket som helst av tre värden, och Excel har tre inbyggda konstanter. Om du är nyfiken på den tredje möjligheten (xlVeryHidden), kolla hjälpsystemet.

Det som döljs måste så småningom döljas, så här är ett makro som visar alla kalkylblad i den aktiva arbetsboken:

Sub UnhideSheets()
  Dim Sht Som arbetsblad
  För varje Sht i ActiveWorkbook.Worksheets
    Sht.Visible = xlSheetVisible
  Nästa Sht
Avsluta Sub

Inte överraskande kan du skapa kapslade For Every-Next-loopar. Proceduren CountBold går igenom varje cell i det använda intervallet på varje kalkylblad i varje öppen arbetsbok och visar antalet celler som är formaterade som fetstil:

Sub CountBold()
  Dim WBook Som arbetsbok
  Dimma WSheet som arbetsblad
  Dim cell som intervall
  Dim Cnt As Long
  För varje WBook i arbetsböcker
    För varje WSark i WBook.Worksheets
      För varje cell i WSheet.UsedRange
        Om Cell.Font.Bold = True då Cnt = Cnt + 1
      Nästa cell
    Nästa WSark
  Nästa WBook
  MsgBox Cnt & "fet celler hittades"
Avsluta Sub

Leave a Comment

Hur man använder kommandona Gör om och upprepa i Word 2016

Hur man använder kommandona Gör om och upprepa i Word 2016

Lär dig att använda kommandona Gör om och Upprepa i Word 2016 för att effektivt hantera dina dokument. Dessa funktioner hjälper dig att enkelt ångra och återställa ändringar.

Hur man blockerar Microsoft Word från att öppna filer i skrivskyddat läge på Windows

Hur man blockerar Microsoft Word från att öppna filer i skrivskyddat läge på Windows

Hur man blockerar Microsoft Word från att öppna filer i skrivskyddat läge på Windows Microsoft Word öppnar filer i skrivskyddat läge, vilket gör det omöjligt att redigera dem? Oroa dig inte, metoderna finns nedan

Hur man åtgärdar felaktig utskrift av Microsoft Word-dokument

Hur man åtgärdar felaktig utskrift av Microsoft Word-dokument

Så här åtgärdar du fel vid utskrift av felaktiga Microsoft Word-dokument Fel vid utskrift av Word-dokument med ändrade teckensnitt, röriga stycken, saknad text eller förlorat innehåll är ganska vanligt. Men gör det inte

Radera ritningar med penna och överstrykningspenna på dina PowerPoint-bilder

Radera ritningar med penna och överstrykningspenna på dina PowerPoint-bilder

Om du har använt pennan eller överstrykningspennan för att rita på dina PowerPoint-bilder under en presentation, kan du spara ritningarna till nästa presentation eller radera dem så att nästa gång du visar den börjar du med rena PowerPoint-bilder. Följ dessa instruktioner för att radera ritningar med penna och överstrykningspenna: Radera linjer ett på […]

Stilbiblioteksinnehåll i SharePoint 2010

Stilbiblioteksinnehåll i SharePoint 2010

Stilbiblioteket innehåller CSS-filer, XSL-filer (Extensible Stylesheet Language) och bilder som används av fördefinierade mallsidor, sidlayouter och kontroller i SharePoint 2010. För att hitta CSS-filer i stilbiblioteket på en publiceringswebbplats: Välj Webbplatsåtgärder→Visa Allt webbplatsinnehåll. Innehållet på webbplatsen visas. Style-biblioteket ligger i […]

Formatera siffror i tusentals och miljoner i Excel-rapporter

Formatera siffror i tusentals och miljoner i Excel-rapporter

Överväldiga inte din publik med gigantiska siffror. I Microsoft Excel kan du förbättra läsbarheten för dina instrumentpaneler och rapporter genom att formatera dina siffror så att de visas i tusentals eller miljoner.

Hur man delar och följer SharePoint-webbplatser

Hur man delar och följer SharePoint-webbplatser

Lär dig hur du använder SharePoints sociala nätverksverktyg som låter individer och grupper kommunicera, samarbeta, dela och ansluta.

Hur man konverterar datum till Julian-format i Excel

Hur man konverterar datum till Julian-format i Excel

Julianska datum används ofta i tillverkningsmiljöer som en tidsstämpel och snabbreferens för ett batchnummer. Denna typ av datumkodning tillåter återförsäljare, konsumenter och serviceagenter att identifiera när en produkt tillverkades och därmed produktens ålder. Julianska datum används också i programmering, militären och astronomi. Annorlunda […]

Hur man skapar en Access Web App

Hur man skapar en Access Web App

Du kan skapa en webbapp i Access 2016. Så vad är en webbapp egentligen? Tja, webben betyder att den är online, och appen är bara en förkortning för "applikation". En anpassad webbapp är en onlinedatabasapplikation som nås från molnet med en webbläsare. Du bygger och underhåller webbappen i skrivbordsversionen […]

Snabbstartsfält i SharePoint 2010

Snabbstartsfält i SharePoint 2010

De flesta sidor i SharePoint 2010 visar en lista med navigeringslänkar i snabbstartsfältet till vänster på sidan. Snabbstartsfältet visar länkar till utvalt webbplatsinnehåll som listor, bibliotek, webbplatser och publiceringssidor. Snabbstartsfältet innehåller två mycket viktiga länkar: Länken Allt webbplatsinnehåll: […]