- VBA masīva ātrā lapa
- VBA masīva ātrie piemēri
- Masīva priekšrocības? - Ātrums!
- Masīva izveide / deklarēšana (Dim)
- Iestatiet masīva vērtības
- Piešķirt diapazonu masīvam
- 2D / daudzdimensiju masīvi
- Daudzdimensiju masīva piemēri
- Masīva garums / izmērs
- Cilpa caur masīvu
- Citi masīva uzdevumi
- Masīvu izmantošana Access VBA
VBA, an Masīvs ir viens mainīgais, kas var saturēt vairākas vērtības. Iedomājieties masīvu kā šūnu diapazonu: katra šūna var saglabāt vērtību. Masīvi var būt viendimensiju (domājiet par vienu kolonnu), divdimensiju (domājiet par vairākām rindām un kolonnām) vai daudzdimensiju. Masīva vērtībām var piekļūt pēc to stāvokļa (indeksa numura) masīvā.
VBA masīva ātrā lapa
Masīvi
AprakstsVBA kodsIzveidotDim arr (1 līdz 3) Kā variantsarr (1) = “viens”
arr (2) = “divi”
arr (3) = “trīs”Izveidot no ExcelDim arr (1 līdz 3) Kā variants
Dim šūna kā diapazons, i kā vesels skaitlis
i = LBound (arr)
Katrai diapazona šūnai (“A1: A3”)
i = i + 1
arr (i) = šūna.vērtība
Nākamā šūnaIzlasiet visus vienumusDim i kā garš
I = LBound (arr) līdz UBound (arr)
MsgBox ieeja (i)
Tālāk iDzēstDzēst arrMasīvs uz virkniDim sName As String
sName = Pievienoties (arr, “:”)Palielināt izmēruReDim Preserve arr (no 0 līdz 100)Iestatiet vērtībuarr (1) = 22
VBA masīva ātrie piemēri
Apskatīsim pilnu piemēru, pirms iedziļināties specifikā:
12345678910 | ApakšmasīvsPiemērs ()Dim strNames (no 1 līdz 4) kā virknestrNames (1) = "Šellija"strNames (2) = "Stīvs"strNames (3) = "Neema"strNames (4) = "Hosē"msgbox strNames (3)Beigu apakš |
Šeit mēs esam izveidojuši viendimensiju virkņu masīvu: strNames ar četru izmēru (var saturēt četras vērtības) un piešķīruši četras vērtības. Visbeidzot, mēs parādām trešo vērtību ziņojumu lodziņā.
Šajā gadījumā ieguvums no masīva izmantošanas ir neliels: četru vietā ir nepieciešama tikai viena mainīgā deklarācija.
Tomēr aplūkosim piemēru, kas parādīs masīva patieso jaudu:
12345678 | ApakšmasīvsPiemērs2 ()Dim strNames (no 1 līdz 60000) kā virkneDim un tik ilgiJa i = 1 līdz 60000strNames (i) = Šūnas (i, 1). VērtībaTālāk iBeigu apakš |
Šeit mēs esam izveidojuši masīvu, kurā var būt 60 000 vērtību, un mēs ātri aizpildījām masīvu no darblapas A slejas.
Masīva priekšrocības? - Ātrums!
Jūs varētu domāt par masīviem, kas līdzīgi Excel darblapām:
- Katra šūna (vai masīva vienums) var saturēt savu vērtību
- Katrai šūnai (vai masīva vienumam) var piekļūt pēc tās rindas un kolonnas pozīcijas.
- Darblapa Piem. šūnas (1,4). vērtība = “1. rinda, 4. sleja”
- Masīvs Piem. arrVar (1,4) = “1. rinda, 4. sleja”
Tātad, kāpēc uztraukties ar masīviem? Kāpēc ne tikai lasīt un rakstīt vērtības tieši Excel šūnās? Viens vārds: Ātrums!
Lasīšana / rakstīšana Excel šūnās ir lēns process. Darbs ar masīviem ir daudz ātrāks!
Masīva izveide / deklarēšana (Dim)
Piezīme. Masīviem var būt vairāki “izmēri”. Lai viss būtu vienkāršs, mēs sāksim strādāt tikai ar viendimensiju masīviem. Vēlāk apmācībā mēs iepazīstināsim jūs ar vairāku dimensiju masīviem.
Statiskais masīvs
Statiskie masīvi ir masīvi, kuru lielumu nevar mainīt. Un otrādi, Dinamiskie masīvi var mainīt izmēru. Tie ir deklarēti nedaudz savādāk. Vispirms apskatīsim statiskos blokus.
Piezīme. Ja jūsu masīva lielums nemainīsies, izmantojiet statisku masīvu.
Statiska masīva mainīgā deklarēšana ir ļoti līdzīga regulāra mainīgā deklarēšanai, izņemot to, ka jums ir jādefinē masīva lielums. Ir vairāki dažādi veidi, kā iestatīt masīva lielumu.
Jūs varat skaidri deklarēt masīva sākuma un beigu pozīcijas:
123456789101112 | SubstaticArray1 ()'Izveido masīvu ar pozīcijām 1,2,3,4Dim arrDemo1 (no 1 līdz 4) kā virkne"Izveido masīvu ar pozīcijām 4,5,6,7Dim arrDemo2 (no 4 līdz 7) Tik ilgi'Izveido masīvu ar pozīcijām 0,1,2,3Dim arrDemo3 (no 0 līdz 3) Tik ilgiBeigu apakš |
Vai arī varat ievadīt tikai masīva lielumu:
123456 | SubstaticArray2 ()'Izveido masīvu ar pozīcijām 0,1,2,3Dim arrDemo1 (3) Kā virkneBeigu apakš |
Svarīgs! Ņemiet vērā, ka masīvi pēc noklusējuma sākas ar 0. pozīciju Dim arrDemo1 (3) izveido masīvu ar pozīcijām 0,1,2,3.
Jūs varat deklarēt Opciju bāze 1 moduļa augšdaļā, lai masīvs sāktu 1. pozīcijā:
12345678 | Opciju bāze 1SubstaticArray3 ()'Izveido masīvu ar pozīcijām 1,2,3Dim arrDemo1 (3) Kā virkneBeigu apakš |
Tomēr es uzskatu, ka ir daudz vieglāk (un mazāk mulsinoši) tikai skaidri norādīt masīvu sākuma un beigu pozīcijas.
Vai esat noguris no VBA koda piemēru meklēšanas? Izmēģiniet AutoMacro!
Dinamiskais masīvs
Dinamiskie masīvi ir masīvi, kuru lielumu var mainīt (vai kuru lielums nav jānosaka).
Ir divi veidi, kā deklarēt dinamisko masīvu.
Variantu masīvi
Pirmais veids, kā deklarēt dinamisko masīvu, ir masīva tipa iestatīšana Variants.
1 | Dim arrVar () Kā variants |
Ar Variants Array, jums nav jānosaka masīva lielums. Izmērs tiks automātiski pielāgots. Vienkārši atcerieties, ka masīvs sākas ar 0 pozīciju (ja vien moduļa augšdaļai nepievienojat opciju bāzi 1)
12345678910111213 | ApakšvariantsArray ()Dim arrVar () Kā variants'Definēt vērtības (izmērs = 0,1,2,3)arrVar = masīvs (1, 2, 3, 4)'Mainīt vērtības (izmērs = 0,1,2,3,4)arrVar = masīvs ("1a", "2a", "3a", "4a", "5a")'Izvades pozīcija 4 ("5a")MsgBox arrVar (4)Beigu apakš |
Dinamiski masīvi bez variantiem
Izmantojot masīvus bez variantiem, pirms vērtību piešķiršanas masīvam ir jānosaka masīva lielums. Tomēr masīva izveides process ir nedaudz atšķirīgs:
1234567 | Sub DynamicArray1 ()Dim arrDemo1 () kā virkne'Maina masīva izmērus ar pozīcijām 1,2,3,4ReDim arrDemo1 (no 1 līdz 4)Beigu apakš |
Vispirms jūs deklarējat masīvu, kas ir līdzīgs statiskajam masīvam, izņemot to, ka izlaižat masīva lielumu:
1 | Dim arrDemo1 () kā virkne |
Tagad, kad vēlaties iestatīt masīva lielumu, izmantojiet ReDim komanda, lai palielinātu masīvu:
12 | 'Maina masīva izmērus ar pozīcijām 1,2,3,4ReDim arrDemo1 (no 1 līdz 4) |
ReDim maina masīva izmērus. Lasiet tālāk, lai uzzinātu atšķirību starp ReDim un ReDim Preserve.
ReDim pret ReDim Preserve
Kad izmantojat ReDim komandu izdzēsiet no masīva visas esošās vērtības. Tā vietā jūs varat izmantot ReDim Preserve lai saglabātu masīva vērtības:
12 | 'Maina masīva izmērus ar pozīcijām 1,2,3,4 (esošo vērtību saglabāšana)ReDim Preserve arrDemo1 (no 1 līdz 4) |
Masīvu deklarēšana vienkāršota
Jūs, iespējams, jutīsities satriekts, izlasot visu iepriekš minēto. Lai viss būtu vienkāršs, pārējā rakstā mēs galvenokārt strādāsim ar statiskiem masīviem.
Iestatiet masīva vērtības
Masīva vērtību iestatīšana ir ļoti vienkārša.
Izmantojot statisku masīvu, jums ir jādefinē katra masīva pozīcija pa vienam:
12345678 | ApakšmasīvsPiemērs ()Dim strNames (no 1 līdz 4) kā virknestrNames (1) = "Šellija"strNames (2) = "Stīvs"strNames (3) = "Neema"strNames (4) = "Hosē"Beigu apakš |
Izmantojot variantu masīvu, jūs varat definēt visu masīvu ar vienu rindu (praktiski tikai maziem masīviem):
123456 | ApakšmasīvsExample_1Line ()Dim strNames () Kā variantsstrNames = Array ("Shelly", "Steve", "Neema", "Jose")Beigu apakš |
Ja jūs mēģināt definēt vērtību masīva atrašanās vietai, kas neeksistē, jūs saņemsit kļūdu Subscript Out of Range:
1 | strNames (5) = "Šenona" |
Zemāk sadaļā “Piešķirt diapazonu masīvam” mēs parādīsim, kā izmantot cilpu, lai masīviem ātri piešķirtu lielu vērtību skaitu.
Iegūstiet masīva vērtību
Masīva vērtības varat iegūt tāpat. Zemāk redzamajā piemērā mēs ierakstīsim masīva vērtības šūnās:
1234 | Diapazons ("A1"). Vērtība = strNames (1)Diapazons ("A2"). Vērtība = strNames (2)Diapazons ("A3"). Vērtība = strNames (3)Diapazons ("A4"). Vērtība = strNames (4) |
VBA programmēšana | Kodu ģenerators strādā jūsu labā!
Piešķirt diapazonu masīvam
Lai masīvam piešķirtu diapazonu, varat izmantot cilpu:
12345678 | Apakš diapazonsToArray ()Dim strNames (no 1 līdz 60000) kā virkneDim un tik ilgiJa i = 1 līdz 60000strNames (i) = Šūnas (i, 1). VērtībaTālāk iBeigu apakš |
Tādējādi tiks pārvietotas šūnas A1: A60000, masīvam piešķirot šūnu vērtības.
Izvades masīvs diapazonā
Vai arī varat izmantot cilpu, lai piešķirtu masīvu diapazonam:
123 | Ja i = 1 līdz 60000Šūnas (i, 1). Vērtība = strNames (i)Tālāk i |
Tas notiks pretēji: piešķiriet masīva vērtības šūnām A1: A60000
2D / daudzdimensiju masīvi
Līdz šim mēs esam strādājuši tikai ar viendimensiju (1D) masīviem. Tomēr masīviem var būt līdz 32 izmēriem.
Iedomājieties 1D masīvu, piemēram, vienu Excel šūnu rindu vai kolonnu, 2D masīvu, piemēram, visu Excel darblapu ar vairākām rindām un kolonnām, un 3D masīvs ir kā visa darbgrāmata, kurā ir vairākas lapas, kurās katrā ir vairākas rindas un kolonnas (jūs varētu arī iedomāties 3D masīvu kā Rubika kubu).
Daudzdimensiju masīva piemēri
Tagad parādīsim piemērus darbam ar dažādu izmēru masīviem.
VBA programmēšana | Kodu ģenerators strādā jūsu labā!
1D masīva piemērs
Šī procedūra apvieno iepriekšējos masīvu piemērus vienā procedūrā, parādot, kā jūs varētu izmantot masīvus praksē.
1234567891011121314 | SubmasīvsEx_1d ()Dim strNames (no 1 līdz 60000) kā virkneDim un tik ilgi'Piešķiriet masīvam vērtībasJa i = 1 līdz 60000strNames (i) = Šūnas (i, 1). VērtībaTālāk i'Izvades masīva vērtības diapazonāJa i = 1 līdz 60000Izklājlapas ("Izvade"). Šūnas (i, 1). Vērtība = strNames (i)Tālāk iBeigu apakš |
2D masīva piemērs
Šajā procedūrā ir 2D masīva piemērs:
123456789101112131415161718 | ApakšmasīvsEx_2d ()Dim strNames (no 1 līdz 60000, no 1 līdz 10) kā virkneDim i cik ilgi, j tik ilgi'Piešķiriet masīvam vērtībasJa i = 1 līdz 60000Ja j = 1 līdz 10strNames (i, j) = Šūnas (i, j). VērtībaNākamais jTālāk i'Izvades masīva vērtības diapazonāJa i = 1 līdz 60000Ja j = 1 līdz 10Izklājlapas ("Izvade"). Šūnas (i, j). Vērtība = strNames (i, j)Nākamais jTālāk iBeigu apakš |
3D masīva piemērs
Šajā procedūrā ir 3D masīva piemērs darbam ar vairākām lapām:
12345678910111213141516171819202122 | ApakšmasīvsEx_3d ()Dim strNames (no 1 līdz 60000, no 1 līdz 10, no 1 līdz 3) kā virkneDim i cik ilgi, j tik ilgi, k tik ilgi'Piešķiriet masīvam vērtībasAttiecībā uz k = 1 līdz 3Ja i = 1 līdz 60000Ja j = 1 līdz 10strNames (i, j, k) = Sheets ("Sheet" & k). Šūnas (i, j). VērtībaNākamais jTālāk iNākamais k'Izvades masīva vērtības diapazonāAttiecībā uz k = 1 līdz 3Ja i = 1 līdz 60000Ja j = 1 līdz 10Izklājlapas ("Izvade" & k). Šūnas (i, j). Vērtība = strNames (i, j, k)Nākamais jTālāk iNākamais kBeigu apakš |
Masīva garums / izmērs
Līdz šim mēs esam jūs iepazīstinājuši ar dažāda veida masīviem un iemācījuši jums deklarēt masīvus un iegūt/iestatīt masīva vērtības. Tālāk mēs pievērsīsimies citām nepieciešamajām tēmām darbam ar masīviem.
VBA programmēšana | Kodu ģenerators strādā jūsu labā!
UBound un LBound funkcijas
Pirmais solis, lai iegūtu masīva garumu / lielumu, ir izmantot funkcijas UBound un LBound, lai iegūtu masīva augšējo un apakšējo robežu:
123456 | Sub UBoundLBound ()Dim strNames (no 1 līdz 4) kā virkneMsgBox UBound (strNames)MsgBox LBound (strNames)Beigu apakš |
Atņemot abus (un pievienojot 1), jūs iegūsit garumu:
1 | GetArrLength = UBound (strNames) - LBound (strNames) + 1 |
Masīva garuma funkcija
Šeit ir funkcija vienas dimensijas masīva garuma iegūšanai:
1234567 | Publiskā funkcija GetArrLength (kā variants) tik ilgiJa IsEmpty (a) TadGetArrLength = 0CitādiGetArrLength = UBound (a) - LBound (a) + 1Beigas JaBeigu funkcija |
Nepieciešams aprēķināt 2D masīva lielumu? Iepazīstieties ar mūsu apmācību: masīva lieluma aprēķināšana.
Cilpa caur masīvu
Ir divi veidi, kā pārvietoties pa masīvu. Pirmās cilpas caur veseliem skaitļiem, kas atbilst masīva numuru pozīcijām. Ja zināt masīva lielumu, varat to norādīt tieši:
12345678910111213 | ApakšmasīvsExample_Loop1 ()Dim strNames (no 1 līdz 4) kā virkneDim un tik ilgistrNames (1) = "Šellija"strNames (2) = "Stīvs"strNames (3) = "Neema"strNames (4) = "Hosē"Attiecībā uz i = 1 līdz 4MsgBox strNames (i)Tālāk iBeigu apakš |
Tomēr, ja jūs nezināt masīva lielumu (ja masīvs ir dinamisks), varat izmantot LBound un UBound funkcijas no iepriekšējās sadaļas:
12345678910111213 | ApakšmasīvsExample_Loop2 ()Dim strNames (no 1 līdz 4) kā virkneDim un tik ilgistrNames (1) = "Šellija"strNames (2) = "Stīvs"strNames (3) = "Neema"strNames (4) = "Hosē"I = LBound (strNames) līdz UBound (strNames)MsgBox strNames (i)Tālāk iBeigu apakš |
Katrai masīva cilpai
Otra metode ir ar katru cilpu. Tas iziet cauri katram masīva vienumam:
12345678910111213 | ApakšmasīvsExample_Loop3 ()Dim strNames (no 1 līdz 4) kā virkneDim objektsstrNames (1) = "Šellija"strNames (2) = "Stīvs"strNames (3) = "Neema"strNames (4) = "Hosē"Katram vienumam strNamesMsgBox vienumsNākamais vienumsBeigu apakš |
Cilpa Katram masīvam papildus viendimensiju blokiem darbosies ar daudzdimensiju masīviem.
VBA programmēšana | Kodu ģenerators strādā jūsu labā!
Izslēgt 2D masīvu
Varat arī izmantot funkcijas UBound un LBound, lai cilpotu caur daudzdimensiju masīvu. Šajā piemērā mēs aplūkosim 2D masīvu. Ņemiet vērā, ka funkcijas UBound un LBound ļauj norādīt, kurai masīva dimensijai atrast augšējo un apakšējo robežu (1 pirmajai dimensijai, 2 otrajai dimensijai).
1234567891011121314151617181920 | ApakšmasīvsExample_Loop4 ()Dim strNames (1 līdz 4, 1 līdz 2) kā virkneDim i cik ilgi, j tik ilgistrNames (1, 1) = "Šellija"strNames (2, 1) = "Stīvs"strNames (3, 1) = "Neema"strNames (4, 1) = "Hosē"strNames (1, 2) = "Shelby"strNames (2, 2) = "Stīvens"strNames (3, 2) = "Nemo"strNames (4, 2) = "Džesija"J = LBound (strNames, 2) līdz UBound (strNames, 2)I = LBound (strNames, 1) līdz UBound (strNames, 1)MsgBox strNames (i, j)Tālāk iNākamais jBeigu apakš |
Citi masīva uzdevumi
Notīrīt masīvu
Lai notīrītu visu masīvu, izmantojiet paziņojumu par dzēšanu:
1 | Dzēst strNames |
Lietošanas piemērs:
12345678910 | ApakšmasīvsPiemērs ()Dim strNames (no 1 līdz 4) kā virknestrNames (1) = "Šellija"strNames (2) = "Stīvs"strNames (3) = "Neema"strNames (4) = "Hosē"Dzēst strNamesBeigu apakš |
Varat arī pārveidot masīvu, lai mainītu tā izmērus, notīrot masīva daļu:
1 | ReDim strNames (1 līdz 2) |
Tādējādi tiek mainīts masīva izmērs līdz 2, izdzēšot 3. un 4. pozīciju.
Grāfs Masīvs
Jūs varat saskaitīt pozīciju skaitu katrā masīva dimensijā, izmantojot funkcijas UBound un LBound (aplūkotas iepriekš).
Jūs varat arī saskaitīt ievadīto vienumu (vai vienumu, kas atbilst noteiktiem kritērijiem) skaitu, veicot masīvu.
Šajā piemērā tiks aplūkots objektu masīvs un skaitīts masīvā atrasto virkņu skaits, kas nav tukšas:
123456789101112131415 | ApakšmasīvsLoopandCount ()Dim strNames (no 1 līdz 4) kā virkneDim i cik ilgi, n tik ilgistrNames (1) = "Šellija"strNames (2) = "Stīvs"I = LBound (strNames) līdz UBound (strNames)Ja strNames (i) "" Tadn = n + 1Beigas JaTālāk iMsgBox n & "atrastas tukšas vērtības."Beigu apakš |
VBA programmēšana | Kodu ģenerators strādā jūsu labā!
Noņemt dublikātus
Kādā brīdī, iespējams, vēlēsities no masīva noņemt dublikātus. Diemžēl VBA nav iebūvēta funkcija, lai to izdarītu. Tomēr mēs esam uzrakstījuši funkciju, lai noņemtu masīva dublikātus (tas ir pārāk garš, lai to iekļautu šajā apmācībā, bet, lai uzzinātu vairāk, apmeklējiet saiti).
Filtrēt
VBA filtra funkcija ļauj filtrēt masīvu. Tas tiek darīts, izveidojot jaunu masīvu, kurā ir tikai filtrētās vērtības. Zemāk ir īss piemērs, taču noteikti izlasiet rakstu, lai iegūtu vairāk piemērus dažādām vajadzībām.
1234567891011121314 | Apakšfiltra_atbilstība ()'Definējiet masīvuDim strNames As VariantstrNames = Array ("Stīvs Smits", "Šenona Smita", "Raiens Džonsons")'Filtra masīvsDim strSubNames As VariantstrSubNames = Filtrs (strNames, "Smith")'Skaits filtrēts masīvsMsgBox "Atrasts" un UBound (strSubNames) - LBound (strSubNames) + 1 & "vārdi".Beigu apakš |
IsArray funkcija
Varat pārbaudīt, vai mainīgais ir masīvs, izmantojot funkciju IsArray:
123456789101112 | Sub IsArrayEx ()'Izveido masīvu ar pozīcijām 1,2,3Dim arrDemo1 (3) Kā virkne'Izveido regulāru virknes mainīgoDim str kā virkneMsgBox IsArray (arrDemo1)MsgBox IsArray (str)Beigu apakš |
Pievienojieties Array
Jūs varat ātri “pievienoties” visam masīvam kopā ar pievienošanās funkciju:
123456789101112 | Subarray_Join ()Dim strNames (no 1 līdz 4) kā virkneDim joinNames kā virknestrNames (1) = "Šellija"strNames (2) = "Stīvs"strNames (3) = "Neema"strNames (4) = "Hosē"joinNames = Pievienoties (strNames, ",")MsgBox joinNamesBeigu apakš |
VBA programmēšana | Kodu ģenerators strādā jūsu labā!
Sadalīt virkni masīvā
VBA sadalīšanas funkcija sadalīs teksta virkni masīvā, kurā ir sākotnējās virknes vērtības. Apskatīsim piemēru:
123456789 | Apakšmasīvs_Sadalīt ()Dim Vārdi () kā virkneDim pievienojās Vārdi kā virknejoinNames = "Šellija, Stīvs, Nema, Hosē"Vārdi = sadalīti (pievienotiNosaukumi, ",")MsgBox nosaukumi (1)Beigu apakš |
Šeit mēs sadalām šo teksta virkni “Shelly, Steve, Nema, Jose” masīvā (4. izmērs), izmantojot komatu atdalītāju (,).
Const Array
Masīvs nevar deklarēt kā konstanti VBA. Tomēr varat to novērst, izveidojot funkciju, ko izmantot kā masīvu:
123456789 | Definējiet ConstantArrayFunkcija ConstantArray ()ConstantArray = masīvs (4, 12, 21, 100, 5)Beigu funkcijaAtgūt ConstantArray vērtībuSub RetrieveValues ()MsgBox ConstantArray (3)Beigu apakš |
Kopēt masīvu
Nav iebūvēta veida, kā kopēt masīvu, izmantojot VBA. Tā vietā jums būs jāizmanto cilpa, lai piešķirtu vērtības no viena masīva citam.
12345678910111213141516171819 | Sub CopyArray ()Dim Arr1 (no 1 līdz 100) Tik ilgiDim Arr2 (no 1 līdz 100) tik ilgiDim un tik ilgi"Izveidot masīvu 1Ja i = 1 līdz 100Arr1 (i) = iTālāk i“CopyArray1 uz Array2Ja i = 1 līdz 100Arr2 (i) = Arr1 (i)Tālāk iMsgBox Arr2 (74)Beigu apakš |
Transponēt
Nav iebūvētas VBA funkcijas, kas ļautu jums transponēt masīvu. Tomēr mēs esam uzrakstījuši funkciju 2D masīva transponēšanai. Izlasiet rakstu, lai uzzinātu vairāk.
VBA programmēšana | Kodu ģenerators strādā jūsu labā!
Funkciju atgriešanas masīvs
Bieži uzdots jautājums par VBA izstrādātājiem ir tas, kā izveidot funkciju, kas atgriež masīvu. Es domāju, ka lielāko daļu grūtību var atrisināt, izmantojot variantu masīvus. Mēs esam uzrakstījuši rakstu par tēmu: VBA funkciju atgriešanas masīvs.
Masīvu izmantošana Access VBA
Lielākā daļa iepriekš minēto masīva piemēru Access VBA darbojas tieši tāpat kā Excel VBA. Viena būtiska atšķirība ir tāda, ka, ja vēlaties aizpildīt masīvu, izmantojot piekļuves datus, jums ir jāiziet cilpa RecordSet, nevis diapazona objekts.
1234567891011121314151617181920212223 | Apakš diapazonsToArrayAccess ()Par kļūdu Atsākt nākamoDim strNames () kā virkneDim un tik ilgiDim iCount tik ilgiDim dbs kā datu bāzeIzmērs kā ierakstsIestatīt dbs = CurrentDbIestatiet rst = dbs.OpenRecordset ("tblClients", dbOpenDynaset)Ar pirmo.MoveLast.MoveFirstiCount = .RecordCountReDim strNames (1 uz iCount)I = 1 uz iCountstrNames (i) = rst.Fields ("Klienta nosaukums").PārvietotNākamaisTālāk iBeigt arpirmais. AizvērtIestatīt pirmo: nekasSet dbs = NekasBeigu apakš |
Masīva pamācības | |
---|---|
Array Mega-Guide | Jā |
Iegūstiet masīva lielumu | |
Notīrīt masīvu | |
Filtra masīvs | |
Transponēt masīvu | |
Funkciju atgriešanas masīvs | |
Noņemt dublikātus | |