VBA Declare Array - Hur man förklarar arrayer i VBA?

Innehållsförteckning

Excel VBA Declare Array

Arbetsförklaring i VBA liknar väldigt mycket variabler. Det görs med samma svaga uttalande eller statiska offentliga eller privata uttalande. Den enda skillnaden i att deklarera en matris och deklarera en variabel är att medan vi deklarerar en matris måste vi ange en storlek av en matris som är gruppens övre gräns och gruppens nedre gräns.

I VBA-kod kan vi deklarera en enda variabelmatris som kan innehålla antalet variabler istället för att deklarera enstaka variabler. Detta kan hjälpa till att minska antalet rader i koden.

Arrayen är en typ av variabel som kan innehålla mer än ett värde, till skillnad från vanliga variabler som bara kan innehålla ett värde åt gången. Arrayen är en avancerad version av deklarering av variabler i VBA. Tänk dig till exempel en situation där du vill tilldela 5 studentnamn till variabler, och i allmän praxis deklarerar vi fem variabler för alla de fem variablerna vi tilldelar individuella studentnamn en efter en; nedan är exempelkoden för samma.

Koda:

Sub Array_Example () Dim Student1 Som String Dim Student2 Som String Dim Student3 Som String Dim Student4 Som String Dim Student5 Som String End Sub

Istället för att förklara så många variabler, vad sägs om idén att deklarera en enda variabelmatris som kan innehålla alla studentnamn.

Ja, detta är möjligt genom att deklarera matrisen i VBA.

Exempel

Exempel 1

För att deklarera behöver vi inte göra någon speciell VBA-kodning. Snarare måste vi följa enkla begrepp.

Starta först delproceduren.

Koda:

Sub Array_Example () Avsluta Sub

Nu, som vanligt, förklara en variabel som en sträng.

Koda:

Sub Array_Example () Dim student som strängändsub

När variabeln deklareras, se nu till hur många värden den ska innehålla. I det här fallet vill jag lagra fem elevers namn, så nu måste vi fixa matrisstorleken, dvs. 1 till 5. Tillför samma sak till variabel inom parentes.

Koda:

Sub Array_Example () Dim Student (1 till 5) Som strängändsub

Nu för den här variabeln kan vi lagra 5 studentnamn.

Koda:

Sub Array_Example () Dim Student (1 To 5) As String Student (1) = "John" Student (2) = "Peter" Student (3) = "Ricky" Student (4) = "Michael" Student (5) = "Anderson" End Sub

Titta hur många rader vi har minskat genom att förklara variabeln som en matris. Detta är ett sätt att göra. Vi kan fortfarande förkorta den här koden genom att bifoga denna i slingorna i VBA.

Nu till exempel, samma fem namn som jag har i kalkylbladets celler

Nu vill jag visa dessa siffror i meddelandefältet i VBA; ok, låt oss förklara ytterligare en variabel för loopar som datatyp för heltal.

Koda:

Sub Array_Example () Dim Student (1 till 5) Som sträng Dim K som heltal End Sub

Som vanligt har jag behållit arrayvariabeln som 1 till 5 storlekar.

Öppna nu FOR NEXT loop i VBA, och eftersom vi har fem namn anger du gränsen som 1 till 5.

Koda:

Sub Array_Example () Dim Student (1 till 5) Som sträng Dim K som heltal för K = 1 till 5 Nästa K End Sub

För att tilldela värden till matrisvariabeln behöver vi inte följa det tidigare sättet att visa Student (1), Student (2) så här för siffror position leverans slingor variabel "k."

Koda:

Sub Array_Example () Dim Student (1 till 5) Som sträng Dim K som heltal För K = 1 till 5 Student (K) = Nästa K End Sub

För denna arrayvariabel behöver vi värdena från kalkylbladet, så att använda CELLS-egenskapen får värdena från kalkylbladet.

Koda:

Sub Array_Example () Dim Student (1 till 5) Som sträng Dim K som heltal För K = 1 till 5 Student (K) = Celler (K, 1). Värde Nästa K End Sub

Visa nu värdet på arrayvariabeln genom meddelanderutan.

Koda:

Sub Array_Example () Dim Student (1 till 5) Som sträng Dim K som heltal För K = 1 till 5 Student (K) = Celler (K, 1). Värde MsgBox Student (K) Nästa K End Sub

Kör nu koden. I meddelandefältet ser vi förnamnet. Tryck igen på Ok för att se det andra namnet. Så här genom att trycka på Ok kan vi se alla fem namnen.

Exempel # 2 - Tvådimensionella matriser

We have seen above how the array works, now we will see to dimensional arrays. Two-dimensional arrays concentrate on both rows and columns.

In the above example, we have determined the array’s size as 1 to 5; this either concentrates on rows or columns.

By using two-dimensional arrays, we can concentrate on both rows and columns. For this, we need to enclose two loops.

First, define the variable then late we will decide about the size of the array.

Code:

Sub Two_Array_Example() Dim Student As String End Sub

First, decide row size then decide the column length.

Code:

Sub Two_Array_Example() Dim Student(1 To 5, 1 To 3) As String End Sub

For this, I have structured the data for student names, marks, and grade status.

Now come back to the coding window.

Declare two more variables for a loop.

Code:

Sub Two_Array_Example () Dim student (1 till 5, 1 till 3) Som sträng Dim K som heltal, J som heltal slutet sub

Stäng nu öglan, som visas nedan.

Koda:

Sub Two_Array_Example () Dim Student (1 till 5, 1 till 3) Som sträng Dim k som heltal, J som heltal för k = 1 till 5 för J = 1 till 3 kalkylblad ("Studentlista"). Välj Student (k, J) = Celler (k, J). Värde Kalkylblad ("Kopiera blad"). Välj celler (k, J). Värde = Student (k, J) Nästa J Nästa k Avsluta Sub

Vad detta kommer att göra är att det kommer att kopiera data från "Student List" -arket och klistra in i "Copy Sheet."

Saker att komma ihåg

  • Matrisen är ett stort koncept; detta är bara en inledande del.
  • Du behöver avancerade kodningsförmåga för att förstå arraydeklarationen.
  • Ju mer du använder arrays i din kod, desto mer vänjer du dig vid den.

Intressanta artiklar...