VBA ReDim | Apstrādājiet dinamiskos masīvus, izmantojot VBA ReDim Preserve
Excel VBA ReDim paziņojums
VBA Redim paziņojums ir līdzīgs blāvajam paziņojumam, taču atšķirība ir tā, ka to izmanto, lai uzglabātu vai piešķirtu lielāku krātuves vietu vai samazinātu krātuves vietu, kas mainīgajam vai masīvam ir, tagad tagad ir divi svarīgi aspekti, kas tiek izmantoti ar paziņojumu: Saglabāt, ja ar šo paziņojumu tiek izmantots saglabāšana, tas izveido jaunu masīvu ar atšķirīgu izmēru un, ja saglabāšanu neizmanto ar šo paziņojumu, tas vienkārši maina pašreizējā mainīgā masīva lielumu.
Masīvi ir svarīga VBA kodēšanas sastāvdaļa. Izmantojot masīvus, tajā pašā mainīgajā mainīgajā lielumā mēs varam saglabāt vairākas vērtības. Tāpat kā tas, kā mēs deklarējam mainīgo, izmantojot vārdu “Dim”, mums tāpat jādeklarē masīva nosaukums, izmantojot arī “Dim”.
Lai paziņotu masīva nosaukumu, mums vispirms jāidentificē masīva veids, kuru mēs definēsim. Masīvos mums ir 5 veidi.
- Statiskais masīvs
- Dinamiskā masīva
- Viena dimensijas masīvs
- Divdimensiju masīvs
- Daudzdimensionāls masīvs
Statiskajā masīvā excel mēs jau iepriekš izlemsim masīva zemāko un augšējo vērtību, deklarējot mainīgo. Piemēram, aplūkojiet zemāk redzamo piemēru.
Kods:
Sub ReDim_Example1 () Dim MyArray (1 līdz 5) kā virknes beigu apakšsadaļa
Šeit MyArray ir masīva nosaukums, kas var turēt vērtību no 1 līdz 5. MyArray tajā var ievietot 5 dažādus rezultātus, piemēram, zemāk redzamo.
Kods:
Sub ReDim_Example1 () Dim MyArray (1 līdz 5) kā virkne MyArray (1) = "Sveiki" MyArray (2) = "Labs" MyArray (3) = "Rīts" MyArray (4) = "Ir" MyArray (5) " = "Jaukas dienas" beigu apakšsadaļa
Dinamiskā masīva ar ReDim paziņojumu
Bet dinamiskajā masīvā tas tā nav, mēs jau iepriekš neizlemsim zemāko un augšējo vērtību, bet mēs vienkārši definējam masīva nosaukumu un piešķiram datu tipu.
Sub ReDim_Example1 () Dim MyArray () kā virknes beigu apakšsadaļa
Lai masīva nosaukums būtu dinamisks, mums tas vispirms jādeklarē ar vārdu “Dim”, bet laikus neizlemiet masīva lielumu. Mēs tikai nosaucam masīvu ar tukšām vērtībām iekavās (). Ja masīvā nav iekļauts lielums, tas tiek uzskatīts par dinamisku masīvu.
Dim MyArray () kā virkne
Brīdī, kad jūs pieminējat masīva lielumu iekavās, tas kļūst par statisku masīvu. Aptumšot MyArray (no 1 līdz 5) kā virkni
Dinamiskajā masīvā mēs vienmēr mainām masīva izmēru, izmantojot kodu “ReDim” koda nākamajā rindā.
ReDim MyArray (no 1 līdz 6) kā virkne
Jebkura vērtība, kas iepriekšējās darbībās tika saglabāta masīva nosaukumā, ti, izmantojot paziņojumu “Dim”, ir nulle, un izmērs, kuru mēs deklarējām, izmantojot “ReDim”, kļūst par masīva jauno izmēru.
VBA Redim Statement izmantošanas piemēri
Šo VBA ReDim Excel veidni varat lejupielādēt šeit - VBA ReDim Excel veidne1. piemērs
Apskatiet “ReDim” paziņojuma praktiskas izmantošanas piemēru. Veiciet tālāk norādītās darbības, lai lietotu “ReDim”.
1. darbība: vispirms izveidojiet makro nosaukumu.
2. solis: pasludiniet masīva nosaukumu kā virkni.
Kods:
Sub ReDim_Example1 () Dim MyArray () kā virknes beigu apakšsadaļa
3. solis: Tagad izmantojiet vārdu “Redim” un piešķiriet masīva lielumu.
Kods:
Sub ReDim_Example1 () Dim MyArray () Kā virkne ReDim MyArray (1 līdz 3) Beigas Sub
4. solis: Tātad masīva nosaukumam “MyArray” šeit var būt līdz 3 vērtībām. Piešķiriet vērtību šiem 3 masīviem, piemēram, zemāk esošajam.
Kods:
Sub ReDim_Example1 () Dim MyArray () kā virkne ReDim MyArray (1 līdz 3) MyArray (1) = "Laipni lūdzam" MyArray (2) = "uz" MyArray (3) = "VBA" End Sub
Tātad pirmais masīvs ir vienāds ar vārdu “Welcome”, otrais masīvs ir vienāds ar vārdu “to”, bet trešais masīvs ir vienāds ar vārdu “VBA”.
5. solis: Tagad saglabājiet šīs masīva vērtības šūnās.
Kods:
Sub ReDim_Example1 () Dim MyArray () kā virkne ReDim MyArray (1 līdz 3) MyArray (1) = "Laipni lūdzam" MyArray (2) = "uz" MyArray (3) = "VBA" diapazons ("A1"). Vērtība = MyArray (1) diapazons ("B1"). Vērtība = MyArray (2) diapazons ("C1"). Vērtība = MyArray (3) End Sub
6. solis: ja palaižat šo kodu, šīm vērtībām jābūt attiecīgi A1, B1 un C1 šūnās.
2. piemērs - mainiet masīva izmēru, atceroties vecās vērtības.
Kad masīva nosaukumam ir piešķirtas vērtības, mēs varam arī mainīt izmērus jebkurā procedūras brīdī, izmantojot vārdu “ReDim Preserve”.
Pieņemsim, ka jūs jau esat deklarējis masīva nosaukumu un piešķīris vērtības tiem, piemēram, zemāk esošajam.
Tagad jūs vēlaties palielināt masīva garumu par 2, ti, 5. Šajā gadījumā mēs varam izmantot vārdu VBA “ReDim Preserve”, lai mainītu masīva garumu, lai atcerētos arī vecās vērtības.
Kods:
Sub ReDim_Example2 () Dim MyArray () kā virkne ReDim MyArray (3) MyArray (1) = "Laipni lūdzam" MyArray (2) = "uz" MyArray (3) = "VBA" ReDim Saglabājiet MyArray (4) MyArray (4) = "1. rakstzīmes" diapazons ("A1"). Vērtība = MyArray (1) Diapazons ("B1"). Vērtība = MyArray (2) Diapazons ("C1"). Vērtība = MyArray (3) Diapazons ("D1"). Vērtība = MyArray (4) End Sub
Tagad mēs varam piešķirt masīvam vēl divas vērtības.
Kods:
Sub ReDim_Example2 () Dim MyArray () kā virkne ReDim MyArray (3) MyArray (1) = "Laipni lūdzam" MyArray (2) = "uz" MyArray (3) = "VBA" ReDim Saglabājiet MyArray (4) MyArray (4) = "1. rakstzīmes" diapazons ("A1"). Vērtība = MyArray (1) Diapazons ("B1"). Vērtība = MyArray (2) Diapazons ("C1"). Vērtība = MyArray (3) Diapazons ("D1"). Vērtība = MyArray (4) End Sub
Tagad saglabājiet šīs vērtības šūnās.
Kods:
Sub ReDim_Example2 () Dim MyArray () kā virkne ReDim MyArray (3) MyArray (1) = "Laipni lūdzam" MyArray (2) = "uz" MyArray (3) = "VBA" ReDim Saglabājiet MyArray (4) MyArray (4) = "1. rakstzīmes" diapazons ("A1"). Vērtība = MyArray (1) Diapazons ("B1"). Vērtība = MyArray (2) Diapazons ("C1"). Vērtība = MyArray (3) Diapazons ("D1"). Vērtība = MyArray (4) End Sub
Tagad palaidiet makro un redziet, kas notiek
Tātad mēs saņēmām jauno vārdu šūnā D1.
Iemesls, kāpēc mums jālieto vārds “saglabāt”, jo masīvam procedūrā jāatceras vecās masīva vērtības.
Brīdī, kad jūs ignorējat vārdu “saglabāt”, tas vairs neatcerēsies vecās vērtības.
Lietas, kuras šeit jāatceras
- ReDim var turēt tikai masīva pēdējo vērtību, nevis daudzās vērtības. Piemēram, mēs nevaram izmantot šo kodu “ReDim Preserve MyArray (4–5)”, tas izmetīs kļūdu.
- Mēs nevaram ReDim statiskos blokus. Brīdī, kad iekavās piešķirat masīva lielumu, tas kļūst par statisku masīvu.
- Izmantojot ReDim, mēs nevaram mainīt datu tipu. Masīvā var ievietot jebkuru datu tipu, kuru esam piešķīruši, deklarējot masīvu.