Nola berreskuratu 2D array kontserbatu Excel VBA-n (2 modu errazak)

  • Partekatu Hau
Hugh West

Matrize bat datu mota berdinak gordetzen dituen aldagai bat da. Datu errenkada edo zutabe bakarra badago, orduan dimentsio bakarreko array gisa ezagutzen da. Hala ere, errenkada eta zutabe bat baino gehiago daudenean, 2D array deritzo. ReDim erabiltzen dugu VBAn matrize baten tamaina aldatzeko. Gainera, Gorde gako-hitza erabiltzen dugu ReDim datu zaharrak osorik mantentzeko. Artikulu honek 2 modu bizkorrak erakutsiko dizkizu ReDim Preserve " 2D array Excel VBA .

Deskargatu Praktika-koadernoa

Macro to ReDim Preserve 2D.xlsm

2 Approaches to ReDim Preserve 2D Array Excel VBA-n

Hau hiru errenkada eta bi zutabe dituen 2D array batetik sortutako oinarrizko datu multzoa da. Lehenik eta behin, array hau sortuko dugu. Ondoren, beste zutabe bat gehituko diogu array honi. Horretarako “ ReDim Preserve ” erabiliko dugu. Gainera, hau erabiltzen ez badugu zer gertatzen den erakutsiko dugu.

Lehenespenez, matrizearen azken dimentsioa (hau da, zutabeak edo goiko muga) tamaina alda dezakegu. Array-a transposatuko dugu, gero azken dimentsioa aldatuko dugu eta, ondoren, berriro transposatuko dugu 2D array Excel VBA-n 2D array-aren bi dimentsioak tamainaz aldatzeko.

1 ReDim Preserve Last Dimension 2D array

Lehenengo 2D array dinamiko gisa definituko dugu. Ondoren, ReDim sententzia erabiliz, bat sortuko duguhiru errenkada eta bi zutabe dituen array. Azkenik, ReDim adierazpena erabiliko dugu berriro Preserve gako-hitz rekin. handitu bi dimentsioko arrayaren goiko muga.

Urratsak:

  • Hasteko, sakatu ALT+F11 VBA Modulua leihoa agertzeko. Bestela, hau egin dezakezu Garatzailea fitxatik →  hautatu Visual Basic .
  • Ondoren, Txertatu fitxa → hautatu Modulua . Hemen VBA kodea idatziko dugu.

  • Ondoren, idatzi hurrengo kodea Moduluan leihoa.
1790

VBA kodearen matxura

  • Lehenik eta behin, deitzen ari gara. Sub prozedura " Redim_Preserve_2D_Array_Row ".
  • Ondoren, Our_Array aldagaia matrize dinamiko gisa deklaratuko dugu.
  • Ondoren, arrayaren tamaina definitzen dugu. Beheko muga 3 da, goiko muga 2 , eta biak 1 tik hasten dira.
  • Ondoren, balioak esleitzen dizkiogu arrayari. .
  • Ondoren, balioak sartzen ditugu C6:D8 gelaxka barrutian.
  • Ondoren, kodea exekutatuko du.
  • Beraz, Gorde Modulua eta sakatu Exekutatu .

  • Ondorioz, definitutako gelaxka-barrutietara itzuliko ditu balioak. " Rachel " errenkadan 1 eta zutabea 1 posizioan dagoela ikus dezakegu,VBA kodean ( 1,1 ) bezala definitu zena.

  • Orain, matrizearen tamaina aldatuko dugu.
  • Beraz, gehitu hau aurreko kodeari eta kendu lehen Barrutia.Balioaren adierazpena . Gainera, kodearen itxura beheko argazkian ikus dezakezu.
1156

  • Hemen, goiko muga handitu dugu ( 1 Hori 2 ) ( 1 Hori 3 ) 1 >.
  • Ondoren, balioak gehitu ditugu arrayra.
  • Orain kode hau exekutatzen badugu, aurreko balioak ez direla gordetzen ikusiko dugu. Aurreko balioetarako hutsik itzuliko da.

  • Orain, hau konpondu ahal izango dugu Konserbatu gako-hitza gehituz . 1>ReDim adierazpena .
  • Azkenik, gure kode osoa hau izango da.
5669

  • Orain, Exekutatu kode hau, orduan irteera honela izango da. Horrela, " ReDim Preserve " Excel VBA-n 2D array baten azken dimentsioa egingo dugu.. Orain, hurrengo metodoak " ReDim" nola egin erakutsiko dizu. Preserve ” eta aldatu matrizearen bi dimentsioak.

Irakurri gehiago: VBA bakarra lortzeko Zutabetik Excel-eko matrizeko balioak (3 irizpide)

Antzeko irakurketak

  • Nola izendatu Excel-en taula-matrize bat (ekin Urrats errazak)
  • Excel VBA CSV fitxategia array-ra irakurtzeko (4 adibide ideal)
  • Nola bihurtu Range array Excel-enVBA (3 modu)
  • Excel VBA: kendu bikoiztuak array batetik (2 adibide)

2. ReDim Gorde bi dimentsioak 2D matrizean Excel VBA

Azken metodo honetan, 2D array tamaina aldatzeko eta " ReDim Preserve " urratsak erakutsiko dizkizugu. Hemen, VBA Transpose funtzioa erabiliko dugu arrayaren behe-muga aldatzeko. Lehenengo metodoan matrizearen beheko muga tamaina aldatzen saiatu bagara, orduan " Azpidez kanpokoa " errorea ikusiko dugu. Orain, gehiago luzatu gabe, ikus dezagun nola konpondu dezakegun eta gure helburua lortzeko.

Urratsak:

  • Lehenik eta behin, lehen metodoan erakusten den bezala , atera Modulua leihoa.
  • Bigarrenik, gehitu kode lerro hauek. lehen kodea.
8100
  • Gainera, azken metodoaren kodeak honen itxura du.
5843

VBA kodearen banaketa

  • Lehenik eta behin, Azpiprozedura " ReDim_Preserve_2D_Array_Both_Dimensions " deitzen ari gara. .
  • Ondoren, VBA Transpose funtziora arteko gainerako kodeak lehen kodeko berdinak dira.
  • Hemen dugu. matrizea transposatzen ari dira.
  • Ondoren, matrizearen goiko muga handitzen ari gara.
  • Ondoren, matrizea berriro transposatzen dugu. Hori dela eta, azken finean, beheko muga aldatuko du.
  • Ondoren, tamaina aldatzeko matrizearen balioak sartzen ditugu bitartean.datu zaharrak gordez.
  • Azkenik, balioak gelaxka barrutian idazten ditugu C6:E9 .
  • Ondoren. hori, lehen metodoan erakusten den bezala , Exekutatu kode hau.
  • Horrela, kodeak nola gordetzen duen ikus dezakegu . 2D array ReDim Preserve ” eta VBA Transpose funtzioa erabiliz.

Irakurri gehiago: VBA Excel-en array transposatzeko (3 metodo)

Gogoratu beharreko gauzak

  • ReDim Preserve -k ezin du aldatu arrayaren beheko muga. Horretarako, Transpose funtzioa erabili behar dugu.
  • Matrize dinamikoetan ReDim soilik erabil dezakegu.

Ondorioa

Excel VBA-n 2D matrizea " ReDim Preserve " bi modu azkar erakutsi dizkizugu. Metodo hauei buruzko arazoren bat baduzu edo niretzako iritzirik baduzu, lasai iruzkin ezazu behean. Gainera, gure gunea bisita dezakezu ExcelWIKI Excel-ekin erlazionatutako artikulu gehiago lortzeko. Eskerrik asko irakurtzeagatik, segi bikain!

Hugh West esperientzia handiko Excel prestatzaile eta analista da, industrian 10 urte baino gehiagoko esperientzia duena. Kontabilitate eta Finantzetan Lizentziatua eta Enpresen Administrazioko Masterra da. Hughek irakasteko grina du eta jarraitzeko eta ulertzeko erraza den irakaskuntza-ikuspegi berezia garatu du. Excel-en ezagutza adituak mundu osoko milaka ikasle eta profesionalei beren gaitasunak hobetzen eta beren karreran bikaintzen lagundu die. Bere blogaren bidez, Hughek bere ezagutzak munduarekin partekatzen ditu, doako Excel tutorialak eta lineako prestakuntza eskainiz, pertsona eta enpresei beren potentzial osoa lortzen laguntzeko.