Arbeta med Arrays för VBA-programmering i Excel 2016

De flesta programmeringsspråk stöder arrayer, inklusive VBA. En array är en grupp av variabler som delar ett namn. Du refererar till en specifik variabel i arrayen genom att använda arraynamnet och ett indexnummer inom parentes. Du kan till exempel definiera en matris med 12 strängvariabler för att innehålla namnen på årets månader. Om du namnger arrayen MonthNames , kan du referera till det första elementet i arrayen som MonthNames (1), det andra elementet som MonthNames (2) och så vidare.

Deklarerar arrayer

Innan du kan använda en array måste du deklarera den. Inga undantag. Till skillnad från normala variabler är VBA mycket strikt när det gäller denna regel. Du deklarerar en array med en Dim eller Public-sats, precis som du deklarerar en vanlig variabel. Men du måste också ange antalet element i arrayen. Du gör detta genom att ange det första indexnumret, nyckelordet Till och det sista indexnumret - allt inom parentes. Följande exempel visar hur man deklarerar en matris med 100 heltal:

Dim MyArray(1 Till 100) Som heltal

När du deklarerar en array kan du välja att endast ange det övre indexet. Om du utelämnar det lägre indexet antar VBA att det är 0. Därför deklarerar båda följande satser samma 101-elements array:

Dim MyArray (0 Till 100) Som heltal
Dim MyArray (100) Som heltal

Om du vill att VBA ska anta att 1 (snarare än 0) är det lägre indexet för dina arrayer, inkludera följande uttalande i avsnittet Deklarationer högst upp i din modul:

Alternativ Bas 1

Denna sats tvingar VBA att använda 1 som första indexnummer för arrayer som endast deklarerar det övre indexet. Om denna sats finns är följande satser identiska, båda deklarerar en array med 100 element:

Dim MyArray (1 till 100) Som heltal
Dim MyArray (100) Som heltal

Flerdimensionella arrayer

De arrayer som skapats i de tidigare exemplen är alla endimensionella arrayer. Tänk på endimensionella arrayer som en enda rad med värden. Matriser du skapar i VBA kan ha så många som 60 dimensioner - även om du sällan behöver mer än två eller tre dimensioner i en matris. Följande exempel deklarerar en 81-heltalsmatris med två dimensioner:

Dim MyArray (1 till 9, 1 till 9) som heltal

Du kan tänka dig att den här arrayen upptar en 9 x 9 matris - perfekt för att lagra alla nummer i ett Sudoku-pussel.

För att referera till ett specifikt element i denna array måste du ange två indexnummer (liknande dess "rad" och dess "kolumn" i matrisen). Följande exempel visar hur du kan tilldela ett värde till ett element i denna array:

MyArray (3, 4)= 125

Denna sats tilldelar ett värde till ett enskilt element i arrayen. Om du tänker på arrayen i termer av en 9 x 9 matris, tilldelar detta 125 till elementet som finns i den tredje raden och fjärde kolumnen i matrisen.

Så här deklarerar du en tredimensionell array med 1 000 element:

Dim My3DArray (1 till 10, 1 till 10, 1 till 10) som heltal

Du kan tänka på en tredimensionell array som en kub. Att visualisera en uppsättning av mer än tre dimensioner är svårare.

Dynamiska arrayer

Du kan också skapa dynamiska arrayer. En dynamisk array har inte ett förinställt antal element. Deklarera en dynamisk array med en tom uppsättning parenteser:

Dim MyArray () Som heltal

Innan du kan använda denna array måste du använda ReDim-satsen för att tala om för VBA hur många element arrayen har. Vanligtvis bestäms antalet element i arrayen medan din kod körs. Du kan använda ReDim-satsen hur många gånger som helst och ändra arrayens storlek så ofta som behövs. Följande exempel visar hur man ändrar antalet element i en dynamisk array. Den förutsätter att variabeln NumElements innehåller ett värde som din kod beräknade.

ReDim MyArray (1 till NumElements)

När du omdimensionerar en array med hjälp av ReDim raderar du alla värden som för närvarande är lagrade i arrayelementen. Du kan undvika att förstöra de gamla värdena genom att använda nyckelordet Bevara. Följande exempel visar hur du kan bevara en arrays värden när du dimensionerar om arrayen:

ReDim Preserve MyArray (1 till NumElements)

Om MyArray för närvarande har tio element, och du kör den föregående satsen med NumElements lika med 12, förblir de första tio elementen intakta, och arrayen har plats för ytterligare två element (upp till antalet som finns i variabeln NumElements). Om NumElements däremot är lika med 7, behålls de första sju elementen men de återstående tre elementen upphör.

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