VBA paskelbti masyvą Kaip deklaruoti masyvus VBA?
„Excel VBA“ deklaruokite masyvą
Masyvo deklaravimas VBA yra labai panašus į kintamųjų deklaraciją, kurį atlieka tas pats blankus teiginys arba statinis viešasis ar privatus pareiškimas, vienintelis masyvo deklaravimo ir kintamojo deklaravimo skirtumas yra tas, kad deklaruodami masyvą turime pateikti dydį masyvo, kuris yra viršutinė masyvo riba ir apatinė masyvo riba.
VBA kode mes galime deklaruoti vieną kintamųjų masyvą, kuriame telpa kintamųjų skaičius, o ne deklaruoti pavienius kintamuosius. Tai gali padėti sumažinti eilučių skaičių kode.
Masyvas yra tam tikras kintamasis, kuriame gali būti daugiau nei viena reikšmė, skirtingai nuo įprastų kintamųjų, kuriuose vienu metu gali būti tik viena reikšmė. Masyvas yra išplėstinė kintamųjų deklaravimo VBA versija. Pvz., Įsivaizduokite situaciją, kai norite priskirti 5 studentų vardus kintamiesiems, o bendrojoje praktikoje mes skelbiame penkis kintamuosius visiems penkiems kintamiesiems, kuriuos mes priskiriame atskiriems studentų vardams po vieną, žemiau pateikiamas to paties pavyzdžio kodas.
Kodas:
Sub masyvas_pavyzdys () „Dim Student1“ kaip „String Dim“ studentas2 kaip „String Dim“ studentas3, kaip „String Dim“ studentas4, kaip „String Dim“ studentas, 5 kaip eilutės pabaiga
Užuot deklaravus tiek daug kintamųjų, kaip būtų, jei būtų galima deklaruoti vieną kintamųjų masyvą, kuriame gali būti visi studentų vardai.
Taip, tai įmanoma deklaruojant masyvą VBA.
Pavyzdžiai
Šį „VBA Declare Array Excel“ šabloną galite atsisiųsti čia - „VBA Declare Array Excel“ šablonas1 pavyzdys
Norėdami pareikšti, kad nereikia daryti specialaus VBA kodavimo, veikiau turime vadovautis paprastomis koncepcijomis.
Pirmiausia pradėkite antrinę procedūrą.
Kodas:
Antrinis masyvas_pavyzdys () Pabaigos sub
Dabar, kaip įprasta, deklaruokite kintamąjį kaip eilutę.
Kodas:
Sub masyvas_pavyzdys () Blankus studentas kaip eilutė Pabaiga
Kai kintamasis bus deklaruotas, įsitikinkite, kiek reikšmių jis turėtų turėti. Šiuo atveju noriu išsaugoti penkių studentų vardus, todėl dabar turime nustatyti masyvo dydį, ty nuo 1 iki 5. Skliausteliuose pateikite tą patį dalyką kintamajam.
Kodas:
Sub masyvas_pavyzdys () Blankus studentas (nuo 1 iki 5) kaip eilutės pabaigos antrinis
Dabar šiam vieninteliam kintamajam galime išsaugoti 5 studentų vardus.
Kodas:
Sub masyvas_pavyzdys () Blankus studentas (nuo 1 iki 5), kaip styginių studentas (1) = "Jonas" studentas (2) = "Petras" studentas (3) = "Ricky" studentas (4) = "Michael" studentas (5) = „Andersono“ pabaigos sub
Pažiūrėkite, kiek eilučių sumažinome, skelbdami kintamąjį kaip masyvą. Tai yra vienas iš būdų, kaip mes vis tiek galime sutrumpinti šį kodą, įtraukdami jį į VBA kilpas.
Dabar, pavyzdžiui, tuos pačius penkis vardus, kuriuos turiu darbalapio langeliuose
Dabar noriu šiuos skaičius rodyti pranešimų laukelyje VBA, gerai, paskelbkime dar vieną kilpų kintamąjį kaip sveikąjį duomenų tipą.
Kodas:
Sub masyvas_pavyzdys () Blankus studentas (nuo 1 iki 5) kaip eilutė Dim K kaip sveikoji pabaiga Sub
Kaip įprasta, aš išlaikiau masyvo kintamąjį nuo 1 iki 5 dydžio.
Dabar atidarykite NEXT kilpą VBA ir kadangi mes turime penkis vardus, įveskite ribą nuo 1 iki 5.
Kodas:
Antrinis masyvas_pavyzdys () Neryškus studentas (nuo 1 iki 5) kaip eilutė Dim K kaip sveikoji K = 1 iki 5 Kitas K pabaigos antrinis
Norėdami priskirti reikšmes masyvo kintamajam, neturime vadovautis ankstesniu būdu rodydami „Student“ (1), „Student“ (2) skaičių padėties tiekimo kilpų kintamojo „k“.
Kodas:
Sub masyvas_pavyzdys () Blankus studentas (nuo 1 iki 5) kaip eilutė Dim K kaip sveikoji K = 1–5 Studentas (K) = Kitas K pabaigos antrinis
Šiam masyvo kintamajam mums reikalingos vertės iš darbalapio, todėl naudodami savybę CELLS gaukite vertes iš darbalapio.
Kodas:
Sub masyvas_pavyzdys () Blankus studentas (nuo 1 iki 5) kaip eilutė Dim K kaip sveikasis skaičius K = 1–5 Studentui (K) = ląstelės (K, 1). Vertė Kitas K pabaiga Sub
Dabar per pranešimų laukelį parodykite masyvo kintamojo vertę.
Kodas:
Sub masyvas_pavyzdys () Blankus studentas (nuo 1 iki 5) kaip eilutė Dim K kaip sveikasis skaičius K = 1–5 Studentui (K) = ląstelės (K, 1). Vertė MsgBox Student (K) Kitas K End Sub
Dabar paleiskite kodą, pranešimo laukelyje pamatysime vardą. Dar kartą paspauskite Gerai, kad pamatytumėte antrą vardą. Taip paspausdami Gerai, galime pamatyti visus penkis vardus.
2 pavyzdys - dviejų matmenų masyvai
Mes matėme aukščiau, kaip masyvas veikia, dabar matysime matmenų masyvus. Dviejų matmenų masyvai koncentruojasi ir į eilutes, ir į stulpelius.
Ankstesniame pavyzdyje nustatėme masyvo dydį nuo 1 iki 5, tai sutelkia dėmesį į eilutes arba stulpelius.
Naudodami dvimačius masyvus galime sutelkti dėmesį tiek į eilutes, tiek į stulpelius. Tam turime uždaryti dvi kilpas.
Pirmiausia apibrėžkite kintamąjį, tada vėlai nuspręsime dėl masyvo dydžio.
Kodas:
Antrasis antrasis_pasaulis_pavyzdys () Uždenkite studentą kaip eilutės pabaigą
Pirmiausia nuspręskite eilutės dydį, tada nustatykite stulpelio ilgį.
Kodas:
Antrasis antrasis_diskretas_pavyzdys () „Dim“ studentas (nuo 1 iki 5, nuo 1 iki 3) kaip eilutės pabaiga
Tam susisteminau studento vardo, pažymių ir pažymio statuso duomenis.
Dabar grįžkite į kodavimo langą.
Paskelbkite dar du kilpos kintamuosius.
Kodas:
Antrasis antrasis_masyvas_pavyzdys () „Dim“ studentas (nuo 1 iki 5, nuo 1 iki 3) kaip eilutė „Dim K“ kaip sveikasis skaičius, „J“ kaip sveikasis skaičius „Sub“
Dabar uždėkite kilpą, kaip parodyta žemiau.
Kodas:
Antrasis antrasis_masyvas_pavyzdys () Uždenkite mokinį (nuo 1 iki 5, nuo 1 iki 3) kaip eilutę Dim k kaip sveikąjį skaičių, J kaip sveikąjį skaičių, kai k = 1–5, jei J = nuo 1 iki 3 darbalapių („Studentų sąrašas“). Pasirinkite Studentą (k, J) = Ląstelės (k, J). Vertinkite darbalapius („Kopijuoti lapą“). Pasirinkite langelius (k, J). Vertė = Studentas (k, J) Kitas J Kitas k Pabaiga Sub
Tai padarys tai, kad nukopijuos duomenis iš „Studentų sąrašo“ lapo ir įklijuos į „Copy Sheet“.
Ką reikia atsiminti
- Masyvas yra didžiulė sąvoka, tai tik įžanginė dalis.
- Jums reikia pažangių kodavimo įgūdžių, kad suprastumėte masyvo deklaraciją.
- Kuo daugiau kode naudosite masyvų, tuo labiau įprasite.