VBA daudzdimensiju masīvs (2D masīvi)

Šajā apmācībā tiks apspriesti 2-d un daudzdimensiju masīvi VBA.

Daudzdimensiju masīvs (2D masīvi)

Daudzdimensiju masīvi ir masīvi, kas satur vairāk nekā vienu dimensiju, parasti divas vai trīs dimensijas, bet masīviem var būt līdz 32 dimensijām.

Pasludiniet 2D masīvu

Lai izveidotu masīvu ar vairākām dimensijām, izmantojiet komatus, lai definētu katru atsevišķo dimensiju.

1 Dim intArr (2,3) kā vesels skaitlis

2D masīva aizpildīšana

Tālāk esošais kods aizpildīs 2D masīvu un pēc tam aizpildīs darblapas rindas un kolonnas ar masīva vērtībām.

1234567891011121314151617181920212223242526 Apakšpopulācija2D ()'deklarēt 2D masīvuDim intA (2, 3) Kā vesels skaitlis'deklarēt mainīgosDim rw Kā vesels skaitlisDim col As Kā vesels skaitlis'aizpildīt masīvuintA (0, 0) = 45intA (0, 1) = 50intA (0, 2) = 55intA (0, 3) = 60intA (1, 0) = 65intA (1, 1) = 70intA (1, 2) = 75intA (1, 3) = 80intA (2, 0) = 85intA (2, 1) = 90intA (2, 2) = 95intA (2, 3) = 100cilpu un aizpildiet ExcelRw = 0 līdz 2Kolā = 0 līdz 3Šūnas (rw + 1, col + 1). Vērtība = intA (rw, col)Nākamā kolNākamais rwBeigu apakš

Pēc tam jūsu Excel izklājlapa jāaizpilda šādi.

2D masīva aizpildīšana no Excel datiem

Zemāk esošais kods aizpildīs 2D masīvu no Excel darblapas un pēc tam aizpildīs citu lapu ar datiem.

1234567891011121314151617181920212223242526 Apakšpopulācija2D ()'Deklarējiet darblapasDim ws_Source kā darblapaDim ws_Destination kā darblapa'Deklarējiet masīvuDim wsData (10, 2) kā variants'Deklarējiet mainīgosDim rw kā vesels skaitlisDim col As Kā vesels skaitlis"skatiet avota lapuIestatīt ws_Source = Darblapas ("Sheet1")"iegūstiet informāciju no avota lapas un aizpildiet masīvuRw = LBound (wsData, 1) līdz UBound (wsData, 1)Par col = LBound (wsData, 2) uz UBound (wsData, 2)wsData (rw, col) = ws_Source.Range ("A2"). Nobīde (rw, col). VērtībaNākamā kolNākamais rw"skatiet galamērķa lapuIestatīt ws_Destination = Darblapas ("Sheet2")'aizpildīt mērķa lapu no masīvaRw = LBound (wsData, 1) līdz UBound (wsData, 1)Par col = LBound (wsData, 2) uz UBound (wsData, 2)ws_Destination.Range ("A1"). Nobīde (rw, col). Vērtība = wsData (rw, col)Nākamā kolNākamais rwBeigu apakš

Izmēru maiņa, izmantojot ReDim un Re-Dim Preserve

Masīva lielumu var mainīt, izmantojot ReDim.

1234567891011121314151617 Sub Resize2D ()'deklarējiet masīvuDim varArray () kā Variant'deklarējiet masīva lielumuReDim varArray (1, 2)varArray (0, 0) = "Mels Smits"varArray (0, 1) = "Freds sprādze"varArray (0, 2) = "Džeina Eira"varArray (1, 0) = "Grāmatvedis"varArray (1, 1) = "Sekretārs"varArray (1, 2) = "Ārsts"'atkārtoti norādīt masīva lielumuReDim varArray (0, 1)'no jauna aizpildīt masīvuvarArray (0, 0) = "Mels Smits"varArray (0, 1) = "Freds sprādze"Beigu apakš

Atkārtoti deklarējot masīvu, jūs zaudēsiet visus datus, kas iepriekš bija masīvā, ja neizmantojat ReDim saglabāšanas paziņojums.

12345678910111213141516 Sub Resize2D ()'deklarējiet masīvu Dim varArray () kā variantu'deklarējiet masīva lielumuReDim varArray (1, 2)varArray (0, 0) = "Mels Smits"varArray (0, 1) = "Freds sprādze"varArray (0, 2) = "Džeina Eira"varArray (1, 0) = "Grāmatvedis"varArray (1, 1) = "Sekretārs"varArray (1, 2) = "Ārsts"'atkārtoti norādīt masīva lielumuReDim Preverve varArray (1, 3)'aizpildiet masīvu ar papildu vērtībāmvarArray (0, 3) = "Robs Bārnss"varArray (1, 3) = "Santehniķis"Beigu apakš

Masīva pēdējās dimensijas izmēru var mainīt tikai tad, ja vēlaties saglabāt masīva sākotnējos datus ar Atkal aptumšot saglabāšanu.

Noklikšķinot uz atkļūdošanas, tiks izcelta kļūda, norādot, ka masīva pirmā dimensija nav tāda pati kā pirmā dimensija, kad sākotnēji tika deklarēts masīva lielums.

Jums palīdzēs attīstību vietā, daloties lapu ar draugiem

wave wave wave wave wave