VBA masyvai

VBA, an Masyvas yra vienas kintamasis, kuris gali turėti kelias reikšmes. Pagalvokite apie masyvą kaip langelių diapazoną: kiekviena ląstelė gali išsaugoti vertę. Masyvai gali būti vieno matmens (pagalvokite apie vieną stulpelį), dvimatį (pagalvokite apie kelias eilutes ir stulpelius) arba daugialypį. Masyvo vertes galima pasiekti pagal jų padėtį (indekso numerį) masyve.

VBA masyvo greitasis lapas

Masyvai

apibūdinimasVBA kodasSukurtiDim arr (nuo 1 iki 3) Kaip variantas
arr (1) = „vienas“
arr (2) = „du“
arr (3) = „trys“Sukurkite iš „Excel“Dim arr (nuo 1 iki 3) Kaip variantas
Šviesos langelis kaip diapazonas, o kaip sveikasis skaičius
i = LBound (arr)
Kiekvienam diapazono langeliui („A1: A3“)
i = i + 1
arr (i) = ląstelė. vertė
Kitas langelisSkaityti visus elementusDim i kaip ilgas
I = LBound (arr) į UBound (arr)
„MsgBox“ (i)
Kitas I.IštrintiIštrinti arrMasyvas į eilutęDim sName As String
sName = Prisijungti (arr, „:“)Padidinti dydį„ReDim Preserve arr“ (nuo 0 iki 100)Nustatykite vertęarr (1) = 22

Greiti VBA masyvo pavyzdžiai

Prieš įsigilindami į specifiką, pažvelkime į visą pavyzdį:

12345678910 Antrinis masyvasPavyzdys ()Dim strNames (nuo 1 iki 4) kaip eilutėstrNames (1) = "Shelly"strNames (2) = "Styvas"strNames (3) = "Neema"strNames (4) = "Jose"msgbox strNames (3)Pabaiga Sub

Čia sukūrėme vienmatį eilutės masyvą: „strNames“, kurio dydis yra keturi (gali būti keturios vertės), ir priskyrėme keturias reikšmes. Galiausiai pranešimų laukelyje rodome trečiąją vertę.

Šiuo atveju masyvo naudojimo nauda yra nedidelė: vietoj keturių reikia pateikti tik vieną kintamojo deklaraciją.

Tačiau pažvelkime į pavyzdį, kuris parodys tikrąją masyvo galią:

12345678 Antrasis masyvasPavyzdys2 ()Dim strNames (nuo 1 iki 60000) kaip eilutėTamsiai ilgasJei i = nuo 1 iki 60000strNames (i) = Ląstelės (i, 1). VertėKitas I.Pabaiga Sub

Čia sukūrėme masyvą, kuriame gali būti 60 000 reikšmių, ir greitai užpildėme masyvą iš darbalapio A stulpelio.

Masyvo privalumai? - Greitis!

Galite pagalvoti apie masyvus, panašius į „Excel“ darbalapius:

  • Kiekviena ląstelė (arba masyvo elementas) gali turėti savo vertę
  • Kiekvieną langelį (arba masyvo elementą) galima pasiekti pagal jo eilutės ir stulpelio padėtį.
    • Darbo lapas Ex. ląstelės (1,4). vertė = „1 eilutė, 4 stulpelis“
    • Masyvas Pvz. arrVar (1,4) = „1 eilutė, 4 stulpelis“

Taigi kodėl nerimauti dėl „Arrays“? Kodėl negalima tiesiog skaityti ir rašyti reikšmių tiesiai į „Excel“ langelius? Vienas žodis: Greitis!

Skaitymas / rašymas į „Excel“ langelius yra lėtas procesas. Darbas su „Arrays“ yra daug greitesnis!

Masyvo sukūrimas / paskelbimas (matinis)

Pastaba: Masyvai gali turėti kelis „matmenis“. Kad viskas būtų paprasta, pradėsime dirbti tik su vienmatėmis masyvomis. Vėliau pamokoje mes supažindinsime jus su kelių matmenų masyvais.

Statinis masyvas

Statiniai masyvai yra masyvai, kurie negali pakeisti dydžio. Ir atvirkščiai, Dinaminiai masyvai gali pakeisti dydį. Jie deklaruojami šiek tiek kitaip. Pirma, pažvelkime į statines masyvas.

Pastaba: jei jūsų masyvo dydis nesikeis, naudokite statinį masyvą.

Statinio masyvo kintamojo paskelbimas yra labai panašus į įprasto kintamojo deklaravimą, išskyrus atvejus, kai turite apibrėžti masyvo dydį. Yra keli skirtingi masyvo dydžio nustatymo būdai.

Galite aiškiai deklaruoti masyvo pradžios ir pabaigos pozicijas:

123456789101112 „Sub StaticArray1“ ()„Sukuriamas masyvas su 1,2,3,4 pozicijomisDim arrDemo1 (nuo 1 iki 4) kaip eilutėSukuria masyvą su 4,5,6,7 pozicijomisDim arrDemo2 (nuo 4 iki 7) Kaip ilgai„Sukuria masyvą, kurio pozicijos yra 0,1,2,3Dim arrDemo3 (nuo 0 iki 3) kaip ilgaiPabaiga Sub

Arba galite įvesti tik masyvo dydį:

123456 „Sub StaticArray2“ ()„Sukuria masyvą, kurio pozicijos yra 0,1,2,3Dim arrDemo1 (3) kaip eilutėPabaiga Sub

Svarbu! Atkreipkite dėmesį, kad pagal numatytuosius nustatymus masyvai prasideda nuo 0 pozicijos. Taigi Dim arrDemo1 (3) sukuria masyvą su 0,1,2,3 pozicijomis.

Galite deklaruoti 1 variantas modulio viršuje, kad masyvas prasidėtų nuo 1 pozicijos:

12345678 1 variantas„Sub StaticArray3“ ()„Sukuriamas masyvas su 1, 2, 3 pozicijomisDim arrDemo1 (3) kaip eilutėPabaiga Sub

Tačiau manau, kad daug lengviau (ir mažiau painu) tiesiog aiškiai paskelbti masyvų pradžios ir pabaigos pozicijas.

Pavargote ieškoti VBA kodo pavyzdžių? Išbandykite „AutoMacro“!

Dinaminis masyvas

Dinaminiai masyvai yra masyvai, kurių dydį galima keisti (arba kurių dydžio nereikia apibrėžti).

Yra du būdai, kaip paskelbti dinaminį masyvą.

Variantų masyvai

Pirmasis būdas paskelbti dinaminį masyvą yra nustatyti masyvo tipą Variantas.

1 Dim arrVar () Kaip variantas

Su Arra variantasy, jums nereikia apibrėžti masyvo dydžio. Dydis bus automatiškai sureguliuotas. Tiesiog nepamirškite, kad masyvas prasideda nuo 0 pozicijos (nebent prie modulio viršaus pridėsite 1 parinkties bazę)

12345678910111213 SubvariantasArray ()Dim arrVar () Kaip variantas„Apibrėžkite vertes (dydis = 0,1,2,3)arrVar = masyvas (1, 2, 3, 4)„Keisti vertes (dydis = 0,1,2,3,4)arrVar = masyvas („1a“, „2a“, „3a“, „4a“, „5a“)„4 išvesties padėtis („ 5a “)„MsgBox arrVar“ (4)Pabaiga Sub

Nevariantiniai dinaminiai masyvai

Naudodami ne variantų masyvus, prieš priskirdami masyvui reikšmes, turite nustatyti masyvo dydį. Tačiau masyvo kūrimo procesas šiek tiek skiriasi:

1234567 „Sub DynamicArray1“ ()Dim arrDemo1 () kaip eilutė„Keičia masyvo dydį su 1,2,3,4 pozicijomisReDim arrDemo1 (nuo 1 iki 4)Pabaiga Sub

Pirmiausia deklaruojate masyvą, panašų į statinį masyvą, išskyrus tai, kad praleidžiate masyvo dydį:

1 Dim arrDemo1 () kaip eilutė

Dabar, kai norite nustatyti masyvo dydį, naudokite ReDim komanda masyvo dydžiui nustatyti:

12 „Keičia masyvo dydį su 1,2,3,4 pozicijomisReDim arrDemo1 (nuo 1 iki 4)

„ReDim“ keičia masyvo dydį. Žemiau skaitykite skirtumą tarp „ReDim“ ir „ReDim Preserve“.

„ReDim“ prieš „ReDim Preserve“

Kai naudojate ReDim komanda išvalysite visas esamas reikšmes iš masyvo. Vietoj to galite naudoti „ReDim Preserve“ Norėdami išsaugoti masyvo vertes:

12 „Keičia masyvo dydį su 1,2,3,4 pozicijomis (išsaugomos esamos vertės)„ReDim Preserve arrDemo1“ (nuo 1 iki 4)

Masyvų deklaravimas supaprastintas

Perskaitę viską aukščiau, galite jaustis priblokšti. Kad viskas būtų paprasta, likusioje straipsnio dalyje daugiausia dirbsime su statiniais masyvais.

Nustatykite masyvo vertes

Masyvo vertes nustatyti labai paprasta.

Naudodami statinį masyvą, turite apibrėžti kiekvieną masyvo vietą po vieną:

12345678 Antrinis masyvasPavyzdys ()Dim strNames (nuo 1 iki 4) kaip eilutėstrNames (1) = "Shelly"strNames (2) = "Styvas"strNames (3) = "Neema"strNames (4) = "Jose"Pabaiga Sub

Naudodami variantų masyvą galite apibrėžti visą masyvą viena eilute (praktiška tik mažiems masyvams):

123456 Antrinis masyvasExample_1Line ()Dim strNames () Kaip variantasstrNames = Masyvas („Shelly“, „Steve“, „Neema“, „Jose“)Pabaiga Sub

Jei bandysite apibrėžti masyvo vietos, kuri neegzistuoja, reikšmę, gausite klaidos užrašo už diapazono ribą:

1 strNames (5) = "Šenonas"

Žemiau esančiame skyriuje „Priskirti diapazoną masyvui“ parodysime, kaip naudoti kilpą, kad greitai priskirtumėte masyvams daugybę verčių.

Gaukite masyvo vertę

Masyvo vertes galite gauti taip pat. Žemiau esančiame pavyzdyje į langelius įrašysime masyvo reikšmes:

1234 Diapazonas („A1“). Reikšmė = strNames (1)Diapazonas („A2“). Vertė = strNames (2)Diapazonas („A3“). Vertė = strNames (3)Diapazonas („A4“). Vertė = strNames (4)

VBA programavimas | Kodo generatorius jums tinka!

Priskirkite diapazoną masyvui

Norėdami masyvui priskirti diapazoną, galite naudoti kilpą:

12345678 Sub RangeToArray ()Dim strNames (nuo 1 iki 60000) kaip eilutėTamsiai ilgasJei i = nuo 1 iki 60000strNames (i) = Ląstelės (i, 1). VertėKitas I.Pabaiga Sub

Taip bus perkeliami langeliai A1: A60000, masyvui priskiriant langelių reikšmes.

Išvesties masyvas į diapazoną

Arba galite naudoti kilpą, kad priskirtumėte masyvą diapazonui:

123 Jei i = nuo 1 iki 60000Ląstelės (i, 1). Vertė = strNames (i)Kitas I.

Tai padarys atvirkščiai: priskirkite masyvo reikšmes langeliams A1: A60000

2D / kelių matmenų masyvai

Iki šiol mes dirbome tik su vienmatiais (1D) masyvais. Tačiau masyvai gali turėti iki 32 matmenų.

Pagalvokite apie 1D masyvą, pvz., Vieną „Excel“ langelių eilutę ar stulpelį, 2D masyvą, kaip visą „Excel“ darbalapį su keliomis eilutėmis ir stulpeliais, o 3D masyvas yra tarsi visa darbaknygė, kurioje yra keli lapai, kurių kiekviename yra kelios eilutės ir stulpeliai (jūs taip pat galėtų įsivaizduoti 3D masyvą kaip Rubiko kubą).

Kelių matmenų masyvo pavyzdžiai

Dabar pademonstruokime darbo su skirtingų matmenų masyvais pavyzdžius.

VBA programavimas | Kodo generatorius jums tinka!

1D masyvo pavyzdys

Ši procedūra sujungia ankstesnius masyvo pavyzdžius į vieną procedūrą, parodydama, kaip galite praktiškai naudoti masyvus.

1234567891011121314 SubmasyvasEx_1d ()Dim strNames (nuo 1 iki 60000) kaip eilutėTamsiai ilgas„Priskirkite vertes masyvuiJei i = nuo 1 iki 60000strNames (i) = Ląstelės (i, 1). VertėKitas I.„Išvesties masyvo vertės į diapazonąJei i = nuo 1 iki 60000Skaičiuoklės („Išvestis“). Ląstelės (i, 1). Vertė = strNames (i)Kitas I.Pabaiga Sub

2D masyvo pavyzdys

Šioje procedūroje yra 2D masyvo pavyzdys:

123456789101112131415161718 SubmasyvasEx_2d ()Dim strNames (nuo 1 iki 60000, nuo 1 iki 10) kaip eilutėDim i As Long, j Kaip ilgai„Priskirkite vertes masyvuiJei i = nuo 1 iki 60000Jei j = nuo 1 iki 10strNames (i, j) = Ląstelės (i, j). VertėKitas jKitas I.„Išvesties masyvo vertės į diapazonąJei i = nuo 1 iki 60000Jei j = nuo 1 iki 10Skaičiuoklės („Išvestis“). Ląstelės (i, j). Vertė = strNames (i, j)Kitas jKitas I.Pabaiga Sub

3D masyvo pavyzdys

Šioje procedūroje yra 3D masyvo, skirto darbui su keliais lapais, pavyzdys:

12345678910111213141516171819202122 SubmasyvasEx_3d ()Dim strNames (nuo 1 iki 60000, nuo 1 iki 10, nuo 1 iki 3) kaip eilutėDim i As Long, j Kaip ilgai, k Kaip ilgai„Priskirkite vertes masyvuiJei k = 1–3Jei i = nuo 1 iki 60000Jei j = nuo 1 iki 10strNames (i, j, k) = Lakštai ("Sheet" & k). Ląstelės (i, j). VertėKitas jKitas I.Kitas k„Išvesties masyvo vertės į diapazonąJei k = 1–3Jei i = nuo 1 iki 60000Jei j = nuo 1 iki 10Skaičiuoklės („Išvestis“ & k). Ląstelės (i, j) .Vertybė = strNames (i, j, k)Kitas jKitas I.Kitas kPabaiga Sub

Masyvo ilgis / dydis

Iki šiol mes supažindinome jus su įvairių tipų masyvais ir išmokėme, kaip deklaruoti masyvus ir gauti/nustatyti masyvo vertes. Toliau mes sutelksime dėmesį į kitas būtinas temas darbui su masyvais.

VBA programavimas | Kodo generatorius jums tinka!

„UBound“ ir „LBound“ funkcijos

Pirmasis žingsnis norint gauti masyvo ilgį / dydį yra funkcijų „UBound“ ir „LBound“ naudojimas norint gauti viršutinę ir apatinę masyvo ribas:

123456 Sub UBoundLBound ()Dim strNames (nuo 1 iki 4) kaip eilutė„MsgBox UBound“ („strNames“)„MsgBox LBound“ („strNames“)Pabaiga Sub

Atėmus du (ir pridėjus 1), gausite ilgį:

1 GetArrLength = UBound (strNames) - LBound (strNames) + 1

Masyvo ilgio funkcija

Čia yra funkcija, skirta gauti vieno matmens masyvo ilgį:

1234567 Viešoji funkcija „GetArrLength“ (kaip variantas) tiek laikoJei IsEmpty (a) Tada„GetArrLength“ = 0Kitas„GetArrLength“ = „UBound“ (a) - „LBound“ (a) + 1Pabaiga JeiPabaigos funkcija

Reikia apskaičiuoti 2D masyvo dydį? Peržiūrėkite mūsų vadovėlį: Apskaičiuokite masyvo dydį.

„Loop Through Array“

Yra du būdai, kaip perjungti masyvą. Pirmosios kilpos per sveikuosius skaičius, atitinkančius masyvo skaičių pozicijas. Jei žinote masyvo dydį, galite jį nurodyti tiesiogiai:

12345678910111213 Antrinis masyvasExample_Loop1 ()Dim strNames (nuo 1 iki 4) kaip eilutėTamsiai ilgasstrNames (1) = "Shelly"strNames (2) = "Styvas"strNames (3) = "Neema"strNames (4) = "Jose"Jei i = nuo 1 iki 4„MsgBox strNames“ (i)Kitas I.Pabaiga Sub

Tačiau, jei nežinote masyvo dydžio (jei masyvas yra dinamiškas), galite naudoti ankstesnio skyriaus LBound ir UBound funkcijas:

12345678910111213 Antrasis masyvasExample_Loop2 ()Dim strNames (nuo 1 iki 4) kaip eilutėTamsiai ilgasstrNames (1) = "Shelly"strNames (2) = "Styvas"strNames (3) = "Neema"strNames (4) = "Jose"I = LBound (strNames) iki UBound (strNames)„MsgBox strNames“ (i)Kitas I.Pabaiga Sub

Už kiekvieną masyvo kilpą

Antrasis metodas yra su kiekviena kilpa. Tai leidžia peržiūrėti kiekvieną masyvo elementą:

12345678910111213 Antrasis masyvasExample_Loop3 ()Dim strNames (nuo 1 iki 4) kaip eilutėTamsus elementasstrNames (1) = "Shelly"strNames (2) = "Styvas"strNames (3) = "Neema"strNames (4) = "Jose"Kiekvienam elementui „strNames“„MsgBox“ elementasKitas elementasPabaiga Sub

„For For Array Loop“ veiks kartu su daugiamatėmis masyvomis, be vienmatžių masyvų.

VBA programavimas | Kodo generatorius jums tinka!

Žingsnis per 2D masyvą

Taip pat galite naudoti „UBound“ ir „LBound“ funkcijas, kad peržiūrėtumėte daugiamatį masyvą. Šiame pavyzdyje apžvelgsime 2D masyvą. Atkreipkite dėmesį, kad „UBound“ ir „LBound“ funkcijos leidžia nurodyti, kuriam masyvo matmeniui rasti viršutinę ir apatinę ribas (1 - pirmajam, 2 - antram).

1234567891011121314151617181920 Antrasis masyvasExample_Loop4 ()Dim strNames (nuo 1 iki 4, nuo 1 iki 2) kaip eilutėDim i As Long, j Kaip ilgaistrNames (1, 1) = "Shelly"strNames (2, 1) = "Styvas"strNames (3, 1) = "Neema"strNames (4, 1) = "Jose"strNames (1, 2) = "Shelby"strNames (2, 2) = "Stivenas"strNames (3, 2) = "Nemo"strNames (4, 2) = "Džesis"J = LBound (strNames, 2) iki UBound (strNames, 2)Jei i = LBound (strNames, 1) iki UBound (strNames, 1)„MsgBox strNames“ (i, j)Kitas I.Kitas jPabaiga Sub

Kitos masyvo užduotys

„Clear Array“

Norėdami išvalyti visą masyvą, naudokite ištrynimo pareiškimą:

1 Ištrinkite strNames

Naudojimo pavyzdys:

12345678910 Antrinis masyvasPavyzdys ()Dim strNames (nuo 1 iki 4) kaip eilutėstrNames (1) = "Shelly"strNames (2) = "Styvas"strNames (3) = "Neema"strNames (4) = "Jose"Ištrinkite strNamesPabaiga Sub

Arba taip pat galite iš naujo nustatyti masyvą, kad pakeistumėte jo dydį, išvalydami masyvo dalį:

1 „ReDim strNames“ (nuo 1 iki 2)

Tai pakeičia masyvo dydį iki 2 dydžio, ištrinant 3 ir 4 pozicijas.

Grafas Array

Galite suskaičiuoti pozicijų skaičių kiekviename masyvo matmenyje naudodami UBound ir LBound funkcijas (aptartas aukščiau).

Taip pat galite suskaičiuoti įvestų elementų (arba elementų, atitinkančių tam tikrus kriterijus) skaičių, kartodami masyvą.

Šis pavyzdys aplenks objektų masyvą ir suskaičiuos masyvo rastų tuščių eilučių skaičių:

123456789101112131415 „Sub ArrayLoopandCount“ ()Dim strNames (nuo 1 iki 4) kaip eilutėDim i As Long, n As LongstrNames (1) = "Shelly"strNames (2) = "Styvas"I = LBound (strNames) iki UBound (strNames)Jei strNames (i) "" Tadan = n + 1Pabaiga JeiKitas I.MsgBox n & "rasta tuščių reikšmių".Pabaiga Sub

VBA programavimas | Kodo generatorius jums tinka!

Pašalinti dublikatus

Tam tikru momentu galbūt norėsite pašalinti masyvo dublikatus. Deja, VBA neturi integruotos funkcijos tai padaryti. Tačiau mes parašėme funkciją, kad pašalintume dublikatus iš masyvo (tai per ilgas laikas įtraukti į šią mokymo programą, bet norėdami sužinoti daugiau, apsilankykite nuorodoje).

Filtras

VBA filtro funkcija leidžia filtruoti masyvą. Tai daroma sukuriant naują masyvą, kuriame yra tik filtruotos vertės. Žemiau yra trumpas pavyzdys, tačiau būtinai perskaitykite straipsnį, kad gautumėte daugiau pavyzdžių įvairiems poreikiams.

1234567891011121314 Antrinis filtras_atitikimas ()„Apibrėžkite masyvąDim strNames As VariantstrNames = Masyvas („Steve Smith“, „Shannon Smith“, „Ryan Johnson“)„Filtro masyvasDim strSubNames As VariantstrSubNames = Filtras (strNames, "Smith")„Grafas filtruotas masyvas„MsgBox“ „Rasta“ ir „UBound“ („strSubNames“) - „LBound“ („strSubNames“) + 1 ir „vardai“.Pabaiga Sub

„IsArray“ funkcija

Galite patikrinti, ar kintamasis yra masyvas, naudodami funkciją „IsArray“:

123456789101112 Sub IsArrayEx ()„Sukuriamas masyvas su 1, 2, 3 pozicijomisDim arrDemo1 (3) kaip eilutė„Sukuria įprastą eilutės kintamąjįDim str As String„MsgBox IsArray“ (arrDemo1)„MsgBox IsArray“ (str.)Pabaiga Sub

Prisijunkite prie „Array“

Galite greitai „prisijungti“ prie viso masyvo kartu su prisijungimo funkcija:

123456789101112 Sub masyvas_Join ()Dim strNames (nuo 1 iki 4) kaip eilutė„Dim joinNames“ kaip eilutėstrNames (1) = "Shelly"strNames (2) = "Styvas"strNames (3) = "Neema"strNames (4) = "Jose"joinNames = Prisijungti (strNames, ",")„MsgBox joinNames“Pabaiga Sub

VBA programavimas | Kodo generatorius jums tinka!

Skaidyti eilutę į masyvą

VBA padalijimo funkcija padalins teksto eilutę į masyvą, kuriame yra pradinės eilutės reikšmės. Pažvelkime į pavyzdį:

123456789 Submasyvas_Split ()Dim Vardai () kaip eilutėDim prisijungė prie vardų kaip eilutėjoinNames = "Shelly, Steve, Nema, Jose"Vardai = padalinti (prisijungę vardai, ",")„MsgBox“ pavadinimai (1)Pabaiga Sub

Čia mes padalijame šią teksto eilutę „Shelly, Steve, Nema, Jose“ į masyvą (4 dydis), naudodami kablelį (,).

Const Array

Masyvas negali būti paskelbta VBA konstanta. Tačiau galite tai išspręsti sukurdami funkciją, naudojamą kaip masyvas:

123456789 „Apibrėžkite„ ConstantArray “Funkcija „ConstantArray“ ()„ConstantArray“ = masyvas (4, 12, 21, 100, 5)Pabaigos funkcija„Atkurti„ ConstantArray “vertęSub RetrieveValues ​​()„MsgBox ConstantArray“ (3)Pabaiga Sub

Kopijuoti masyvą

Nėra integruoto būdo nukopijuoti masyvą naudojant VBA. Vietoj to turėsite naudoti kilpą, kad priskirtumėte reikšmes iš vieno masyvo į kitą.

12345678910111213141516171819 Sub CopyArray ()Dim Arr1 (nuo 1 iki 100) kaip ilgaiDim Arr2 (nuo 1 iki 100) kaip ilgaiTamsiai ilgas„Sukurkite masyvą 1Jei i = nuo 1 iki 100Arr1 (i) = iKitas I.„CopyArray1 į Array2Jei i = nuo 1 iki 100Arr2 (i) = Arr1 (i)Kitas I.„MsgBox Arr2“ (74)Pabaiga Sub

Perkelti

Nėra integruotos VBA funkcijos, leidžiančios perkelti masyvą. Tačiau mes parašėme funkciją 2D masyvui perkelti. Norėdami sužinoti daugiau, perskaitykite straipsnį.

VBA programavimas | Kodo generatorius jums tinka!

Funkcijų grąžinimo masyvas

Dažnas VBA kūrėjų klausimas yra tai, kaip sukurti funkciją, kuri grąžina masyvą. Manau, kad dauguma sunkumų išsprendžiami naudojant variantų masyvus. Mes parašėme straipsnį šia tema: VBA funkcijų grąžinimo masyvas.

Masyvų naudojimas „Access VBA“

Dauguma aukščiau pateiktų „Array“ pavyzdžių „Access VBA“ veikia lygiai taip pat, kaip ir „Excel VBA“. Vienas esminis skirtumas yra tas, kad norėdami užpildyti masyvą naudodami „Access“ duomenis, turėsite pereiti per „RecordSet“ objektą, o ne „Range“ objektą.

1234567891011121314151617181920212223 Sub RangeToArrayAccess ()Dėl klaidos Tęsti toliauDim strNames () kaip eilutėTamsiai ilgas„Dim iCount“ tiek laikoDim dbs kaip duomenų bazėPirmas kaip įrašų rinkinysNustatykite dbs = CurrentDbNustatykite rst = dbs.OpenRecordset ("tblClients", dbOpenDynaset)Su pirm.Perkelti paskutinį.MoveFirst„iCount“ = .RecordCount„ReDim strNames“ (nuo 1 iki „iCount“)I = 1 „iCount“strNames (i) = rst.Fields ("Kliento pavadinimas").PerkeltiToliauKitas I.Pabaiga supirma. UždarytiNustatykite pirmąjį = niekoNustatyti dbs = niekoPabaiga Sub
Masyvo pamokos
„Array Mega“ vadovastaip
Gaukite masyvo dydį
„Clear Array“
Filtro masyvas
Transponuoti masyvą
Funkcijų grąžinimo masyvas
Pašalinti dublikatus

Padėsite svetainės plėtrą, dalintis puslapį su draugais

wave wave wave wave wave