VBA stīgu masīvs - Kā deklarēt un inicializēt virkņu masīvu programmā Excel VBA?

Satura rādītājs

Excel VBA virkņu masīvs

VBA virknes masīvs nav nekas cits kā masīva mainīgais, kurā var būt vairāk nekā viena virknes vērtība ar vienu mainīgo.

Piemēram, apskatiet zemāk redzamo VBA kodu.

Kods:

Apakšējā virkne_Array_Piemērs () Dim CityList (1 līdz 5) kā variantu CityList (1) = "Bangalore" CityList (2) = "Mumbai" CityList (3) = "Kolkata" CityList (4) = "Hyderabad" CityList (5) = "Orissa" MsgBox CityList (1) & "," & CityList (2) & "," & CityList (3) & "," & CityList (4) & "," & CityList (5) End Sub

Iepriekš minētajā kodā esmu deklarējis kā masīva mainīgo un piešķiris masīva garumu no 1 līdz 5.

Blāvs CityList (no 1 līdz 5) kā variants

Šim masīva mainīgajam esmu piešķīris 5 pilsētu nosaukumus, iekavās minot katru masīvu skaitu.

CityList (1) = "Bangalore" CityList (2) = "Mumbai" CityList (3) = "Kolkata" CityList (4) = "Hyderabad" CityList (5) = "Orissa"

Pēc tam es esmu uzrakstījis kodu, lai ziņojuma lodziņā parādītu šos pilsētu nosaukumus.

MsgBox CityList (1) & "," & CityList (2) & "," & CityList (3) & "," & CityList (4) & "," & CityList (5)

Kad es palaidīšu šo kodu, mēs saņemsim ziņojumu lodziņu, kurā visi pilsētu nosaukumi ir redzami vienā ziņojuma lodziņā.

Mēs visi zinām, ka tas ir ietaupījis tik daudz laika no mūsu grafika, atceļot uzdevumu deklarēt katras pilsētas individuālos mainīgos. Tomēr vēl viena lieta, kas jums jāapgūst, ir tas, ka mēs joprojām varam samazināt rindas kodu, kuru mēs rakstām virknes vērtībām. Apskatīsim, kā mēs rakstām kodu VBA virkņu masīviem.

Stīgu masīva piemēri programmā Excel VBA

Tālāk ir norādīti Excel VBA virkņu masīva piemēri.

1. piemērs

Kā redzējām iepriekš minētajā kodā, mēs uzzinājām, ka mainīgajā var saglabāt vairāk nekā vienu vērtību, pamatojoties uz noteikto masīva lielumu.

Tagad tas, kas mums jādara, ir laikus neizlemt masīva garumu.

Kods:

Sub virkne_Array_Piemērs1 () Dim CityList () kā varianta beigu apakšsadaļa

Kā jūs varat redzēt augšpusē iekavās, es neesmu rakstījis nevienu garumu. Tagad šim mainīgajam ievadīsim vērtības, izmantojot funkciju VBA ARRAY.

Masīva iekšpusē ievadiet vērtības divkāršās pēdiņās, kuras katra atdala ar komatu (,).

Kods:

Sub String_Array_Example () Dim CityList () kā variants CityList = Array ("Bangalore", "Mumbai", "Kolkata", "Hyderabad", "Orissa") Beigu apakšdaļa

Tagad saglabājiet veco kodu, lai VBA ziņojumu lodziņā tiktu parādīts pilsētu nosaukumu rezultāts.

Kods:

Apakšējā virkne_Array_Piemērs1 () Dim CityList () kā variants CityList = Masīvs ("Bangalore", "Mumbai", "Kolkata", "Hyderabad", "Orissa") MsgBox CityList (0) & "," & CityList (1) & " , "& CityList (2) &", "& CityList (3) &", "& CityList (4) End Sub

Viena izmaiņa, ko es veicu iepriekš minētajā kodā, ir tā, ka mēs neesam izlēmuši masīva mainīgā apakšējo un augšējo robežu, un mēs esam izmantojuši ARRAY funkciju masīvu skaits sāksies no 0, nevis no 1.

Tāpēc mēs esam minējuši vērtības kā CityList (0), ClityList (1), CityList (2), CityList (3) un CityList (4).

Tagad palaidiet kodu, izmantojot Excel īsinājumtaustiņu F5 vai manuāli. Mēs iegūstam to pašu rezultātu, ko mēs iegūstam no iepriekšējā koda.

2. piemērs

VBA String Array with LBOUND & UBOUND Functions

In case if you don’t want to show all the city lists in a single message box, then you need to include loops, define one more variable for loops.

Now to include FOR NEXT loop, we are not sure how many times we need to run the code. In this case, we can decide it like 5 times, but that is not the right way to approach the problem. So how about the idea of auto lower and higher level array length identifier???

When we open FOR NEXT loop, we usually decide the loop length as 1 to 5 or 1 to 10 depending upon the situation. Instead of entering the numbers manually, let’s use LBOUND and UBOUND function to decide on the lower value and upper value automatically.

For LBound and Ubound, I have supplied an array name, i.e., CityList. VBA LBound identifies the lower value of the array variable, and VBA UBound function identifies the upper value of the array variable.

Now show the value in the message box, instead of inserting the serial number, let the loop variable “k” takes the array value automatically.

Code:

Sub String_Array_Example1() Dim CityList() As Variant Dim k As Integer CityList = Array("Bangalore", "Mumbai", "Kolkata", "Hyderabad", "Orissa") For k = LBound(CityList) To UBound(CityList) MsgBox CityList(k) Next k End Sub

Now the message box will show each city name separately.

Example #3

VBA String Array with Split Function

Now assume you have city names like the below.

Bangalore;Mumbai;Kolkata;Hydrabad;Orissa

In this case, all the cities are combined together with the colon separating each city. In such cases, we need to use the SPLIT function to separate each city.

For Expression, supply the city list.

Code:

Sub String_Array_Example2() Dim CityList() As String Dim k As Integer CityList = Split("Bangalore;Mumbai;Kolkata;Hydrabad;Orissa", For k = LBound(CityList) To UBound(CityList) MsgBox CityList(k) Next k End Sub

The next argument is “Delimiter,” i.e., what is the one character that is separating each city from other cities. In this case, “Colon.”

Code:

Sub String_Array_Example2() Dim CityList() As String Dim k As Integer CityList = Split("Bangalore;Mumbai;Kolkata;Hydrabad;Orissa", ";") For k = LBound(CityList) To UBound(CityList) MsgBox CityList(k) Next k End Sub

Tagad funkcijas SPLIT split split vērtības nosaka arī augstāko masīva garumu.

Atceramās lietas

  • LBOUND un UBOUND ir funkcijas masīva garumu noteikšanai.
  • ARRAY funkcija var saturēt daudzas deklarētā mainīgā vērtības.
  • Vienreiz, ja vēlaties izmantot funkciju ARRAY, neizlemiet masīva garumu.

Interesanti raksti...