VBA Arrays

Excel VBA Arrays

I allmänhet ska en variabel innehålla ett enda värde åt gången, men när vi vill lagra flera värden i en enda variabel så kallas en sådan variabel som arrayvariabel. För att använda en arrayvariabel i VBA måste vi deklarera eller definiera det först kan vi definiera arrayvariabeln med dess längd eller utan dess längd.

Antag att om vi har data som innehåller hundratals rader och flera kolumner och vi måste skapa en kod som kommer att använda data. I det här fallet måste vi skapa multiplar av variabeln som hämtar värdet från cellerna och ger programmet. Detta kommer att vara mycket tröttsamt att skapa så mycket variabel och därför använder vi Arrays i excel i sådana fall.

Arrays håller datamängden i sitt minne och behöver inte att vi deklarerar variabeln för vart och ett av de värden som måste hämtas från data. Behovet av att använda matriser beror på det faktum att i en Excel-variabel är utformad för att hålla ett värde åt gången, men när flera värden lagras av en variabel blir det en matris.

  • Att skapa en matris är som att skapa en separat minnesenhet som kan innehålla data i den. För att skapa en matris måste data vara av samma typ.
  • Arrangemang som vi ger för att utmärka måste motsvara den typ av data vi har. Antag att om vi har data som bara har rader så i det här fallet kommer vi att använda den "endimensionella matrisen" och om data innehåller kolumner också måste vi använda "Tvådimensionella matriser" eftersom de bara kan hålla värdena från raderna och kolumnerna.
  • Arrayer måste också fungera för att fungera som dynamiska arrays eller statiska arrays. När vi ger dynamiskt omfång till formeln kan vi också göra Arrays variabla. Dynamiska matriser har funktionen att inkludera oändligt antal rader och kolumner. Om de matriser som vi har definierat är av statisk typ kan de bara innehålla ett begränsat antal rader och kolumner som definierats vid tidpunkten för att matrisen skapades.

Förklaring

Array arbete på den "matematiska regeln för matris", det vill säga de identifierar data endast efter dess plats. Antag att om vi måste få VBA att förstå att vi behöver "20" i cell "B3" måste vi skriva koden för platsen som (3, 2) där det första värdet står för platsen för raden och det andra värdet står för kolumnnumret. I excel-världen kallas denna kod för platser "Övre gräns" och "nedre gräns". Som standard börjar platsen i excel från en och inte från noll, så excel ser “A1” som rad nummer 0 och inte rad nummer 1.

På samma sätt börjar kolumnerna från noll och inte från en.

Dessa matriser kan definieras som en statisk matris eller dynamisk matris. Om vi ​​definierar dem som en statisk matris betyder det att de inte kan hålla mer än variablerna som definieras när vi kodar dem. Om vi ​​inte är säkra på vilket värde som krävs för att memoreras av matriserna skapar vi dynamiska matriser och i sådana fall kan de innehålla oändligt antal värden.

Nu efter att vi har valt vilken typ av array som krävs måste vi nu ange data i dessa matriser.

Dessa uppgifter måste ges en efter en för att utmärka sig på nedanstående sätt.

Efter att data har lagrats i dessa matriser är de redo att användas som en variabel i VBA-kodningen.

Lista över topp 5 typer av matriser

  1. Statiska matriser
  2. Dynamisk matris
  3. En dimensionell matris
  4. Tvådimensionell matris
  5. Flerdimensionell matris

Låt oss se var och en av dem i detalj.

# 1 - Statiska matriser

En matris som har ett fördefinierat antal värden som kan lagras i den.

# 2 - Dynamisk matris

Array med en inte fördefinierad räkning av värde som den kan hantera.

# 3 - Endimensionell matris

En matris som endast kan innehålla data antingen från rader eller kolumner.

# 4 - Tvådimensionell matris

En matris som kan lagra ett värde från rader och kolumner.

# 5 - Flerdimensionell matris

Hur använder jag Arrays i VBA (med exempel)?

Du kan ladda ner denna Arrays i VBA Excel-mall här - Arrays i VBA Excel-mall

Arrays kan användas i många situationer men de måste användas när antalet variabler som ska deklareras är stort i antal och det inte är möjligt att deklarera dem.

Nedan följer några av exemplen, men innan vi går till exemplen lär vi oss att öppna VBA-redigeraren med genvägstangenten

Detta öppnar VBA-redigeraren, därifrån måste vi ange koden i "Detta kalkylblad".

Exempel nr 1

Välj vilken typ av matris du vill ha, ska det vara en dynamisk eller statisk matris?

Om vi ​​behöver en dynamisk matris definierar vi dimensionen som "variant".

Om vi ​​behöver en statisk matris definierar vi en dimension som "Statisk".

Exempel 2

Definiera de kolumner och rader som du vill att matrisen ska lagra.

Om vi ​​har angett "1" inom parentes betyder det att arrayen kan hålla 2 rader värde eftersom excelräkning börjar från noll.

Om vi ​​behöver kolumner och rader också måste vi definiera dem båda.

Här betyder "1 till 2" att två rader och "1 till 3" betyder att tre kolumner.

Här har vi ändrat regeln för hur excel räknar rader och bad den att räkna från "1" och inte från noll.

Exempel # 3

Inmatningen av data i matrisen.

Uppgifterna måste skickas in i celler. Här ska uppgifterna matas in i form av (I, j) där "I" betyder raden och "J" betyder kolumnen.

Så "a (1,1") betyder att cellen "A1"

Exempel # 4

Stänger koden.

När data har matats in i matrisen är det sista steget att stänga koden.

Saker att komma ihåg

  • Som standard räknar Excel raderna från noll. Det betyder att "2" istället för "I" betyder 3 rader och inte 2 rader. Detsamma gäller ”J”.
  • Data som måste anges för matrisen måste startas från (0, 0) som är från första raden och första kolumnen.
  • Om vi ​​använder de dynamiska matriserna så kommer detta att behöva funktionen “VBA REDIM” för att definiera antalet rader och kolumner som måste memoreras.
  • Om du skapar en tvådimensionell matris måste vi använda "Integer" som dimension.
  • Excel-filen måste sparas i den version som är "Makrokompatibel", annars kommer kodningen som vi har gjort i VBA att försvinna och körs inte nästa gång.