- VBA masyvo greitasis lapas
- Greiti VBA masyvo pavyzdžiai
- Masyvo privalumai? - Greitis!
- Masyvo sukūrimas / paskelbimas (matinis)
- Nustatykite masyvo vertes
- Priskirkite diapazoną masyvui
- 2D / kelių matmenų masyvai
- Kelių matmenų masyvo pavyzdžiai
- Masyvo ilgis / dydis
- „Loop Through Array“
- Kitos masyvo užduotys
- Masyvų naudojimas „Access VBA“
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 variantasarr (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“ vadovas | taip |
Gaukite masyvo dydį | |
„Clear Array“ | |
Filtro masyvas | |
Transponuoti masyvą | |
Funkcijų grąžinimo masyvas | |
Pašalinti dublikatus | |