VBA Declare Array

Excel VBA Declare Array

Arbetsförklaringen i VBA liknar väldigt mycket variabler den görs med samma svaga uttalande eller statiska offentliga eller privata uttalande, den enda skillnaden i att deklarera en array och att deklarera en variabel är att medan vi deklarerar en array måste vi ange en storlek av en grupp 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. Array är en avancerad version av deklarering av variabler i VBA. Tänk dig till exempel en situation där du vill tilldela 5 elevers namn till variabler och i allmän praxis förklarar vi fem variabler för alla de fem variablerna vi tilldelar enskilda 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

Du kan ladda ner denna VBA Declare Array Excel-mall här - VBA Declare Array Excel-mall

Exempel nr 1

För att förklara behöver vi inte göra någon speciell VBA-kodning utan vi måste följa enkla koncept.

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ängsub 

När variabeln deklareras ska du nu se 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. Ge samma sak till variabel inom parentes.

Koda:

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

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

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 lägga in den i öglorna 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 heltal datatyp.

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 storlek.

Öppna nu FÖR NÄSTA slinga 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 en arrayvariabel behöver vi inte följa det tidigare sättet att visa Student (1), Student (2) så här för siffror, positionsslingvariabler 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å använd CELLS-egenskapen för att få 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 

Nu genom meddelandefältet visa värdet på arrayvariabeln.

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

Vi har sett ovan hur matrisen fungerar, nu ser vi till dimensionella matriser. Tvådimensionella matriser koncentreras på både rader och kolumner.

I exemplet ovan har vi bestämt arrayens storlek som 1 till 5, antingen koncentrerar den sig på rader eller kolumner.

Genom att använda tvådimensionella matriser kan vi koncentrera oss på både rader och kolumner. För detta måste vi bifoga två öglor.

Definiera först variabeln och sedan sent bestämmer vi storleken på matrisen.

Koda:

 Sub Two_Array_Example () Dim student som strängens slut sub 

Bestäm först radstorleken och bestäm sedan kolonnlängden.

Koda:

 Sub Two_Array_Example () Dim Student (1 till 5, 1 till 3) Som strängändsub 

For this, I have structured the data for student name, 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 To 5, 1 To 3) As String Dim K As Integer , J As Integer End Sub 

Now enclose the loop as shown below.

Code:

 Sub Two_Array_Example() Dim Student(1 To 5, 1 To 3) As String Dim k As Integer , J As Integer For k = 1 To 5 For J = 1 To 3 Worksheets("Student List").Select Student(k, J) = Cells(k, J).Value Worksheets("Copy Sheet").Select Cells(k, J).Value = Student(k, J) Next J Next k End Sub 

What this will do is it will copy the data from the “Student List” sheet and paste in “Copy Sheet”.

Things to Remember

  • The array is a vast concept, this is just an introductory part.
  • You need advanced coding skills to understand the array declaration.
  • The more you use arrays in your code the more you will get used to it.