Enhavtabelo
Tabelo estas variablo kiu konservas la samajn specojn de datumoj. Se ekzistas nur unu vico aŭ unu kolumno de datumoj, tiam ĝi estas konata kiel unudimensia tabelo. Tamen, kiam estas pli ol unu vico kaj kolumno, ĝi estas nomita 2D tabelo. Ni uzas ReDim por regrandigi tabelon en VBA. Aldone, ni uzas la Konservi ŝlosilvorton kun la ReDim por konservi la malnovajn datumojn sendifektaj. Ĉi tiu artikolo montros al vi 2 rapidajn manierojn por " ReDim Preserve " 2D-tabelo en Excel VBA .
Elŝutu Praktikan Laborlibron
Makro al ReDim Preserve 2D.xlsm
2 Prakaj Alproksimiĝoj al ReDim Preserve 2D Array en Excel VBA
Ĉi tiu estas la baza datumaro kreita de 2D-tabelo kun tri vicoj kaj du kolumnoj. Unue, ni kreos ĉi tiun tabelon. Poste, ni aldonos alian kolumnon al ĉi tiu tabelo. Ni uzos la " ReDim Preserve " por fari tion. Aldone, ni montros kio okazas se ni ne uzas ĉi tion.
Defaŭlte, ni povas nur regrandigi la lastan dimension de la tabelo (t.e. la kolumnoj aŭ la supra limo). Ni transponos la tabelon, poste ŝanĝos la lastan dimension, kaj poste denove transdonos por regrandigi ambaŭ dimensiojn de la 2D-tabelo en Excel VBA.
1 ReDim Preserve Last Dimension 2D Array
Ni unue difinos la 2D-tabelon kiel dinamikan. Tiam, uzante la deklaron ReDim , ni kreos antabelo kun tri vicoj kaj du kolumnoj. Finfine, ni uzos la deklaron ReDim denove kun la Konservi ŝlosilvorto por pliigu la supran limon de la dudimensia tabelo.
Paŝoj:
- Por komenci, premu ALT+F11 por aperigi la fenestron VBA-Modulo . Alternative, vi povas fari tion de la langeto Ellaboranto → elektu Visual Basic .
- Tiam, el la Visual Basic . 1> Enigu langeton → elektu Modulo . Ni tajpos la VBA-kodon ĉi tie.
- Sekva, tajpu la sekvan kodon en la Modulo fenestro.
9933
VBA-Kodo-Difekto
- Unue, ni vokas la Subproceduro “ Redim_Preserve_2D_Array_Row ”.
- Tiam, ni deklaras la variablon Our_Array kiel dinamika tabelo.
- Sekva, ni difinas la grandecon de la tabelo. La malsupera limo estas 3 , la supra limo estas 2 , kaj ambaŭ komenciĝas de 1 .
- Tiam ni atribuas valorojn al la tabelo. .
- Post tio, ni enigas la valorojn al la C6:D8 ĉela gamo.
- Post tio, ni ekzekutos la kodon.
- Do, Konservu la Modulo kaj premu Run .
- Kiel rezulto, ĝi redonos la valorojn al la difinitaj ĉelaj gamoj. Ni povas vidi ke " Rachel " estas en vico 1 kaj kolumno 1 pozicio,kiu estis difinita kiel ( 1,1 ) en la VBA-kodo.
- Nun, ni regrandigos la tabelon.
- Do, aldonu ĉi tion al la antaŭa kodo kaj forigu la unuan Range.Value statement . Plie, kiel la kodo aspektas kiel vi povas vidi el la suba fotofoto.
1325
- Ĉi tie, ni pliigis la superan limon de ( 1 Al 2 ) al ( 1 Al 3 ) per 1 .
- Tiam, ni aldonis la valorojn al la tabelo.
- Nun se ni plenumas ĉi tiun kodon, tiam ni vidos, ke la antaŭaj valoroj ne estas konservitaj. Ĝi revenos malplena por la antaŭaj valoroj.
- Nun, ni povas ripari ĉi tion aldonante la Konservi ŝlosilvorton en la Deklaro de ReDim .
- Fine, nia plena kodo estos ĉi tiu.
5092
- Nun, se ni Rulu ĉi tiun kodon, tiam la eligo estos tia. Tiel, ni " ReDim Preserve " la lastan dimension de 2D-tabelo en Excel VBA.. Nun, la sekva metodo montros al vi kiel " ReDim". Konservu ” kaj regrandigu ambaŭ dimensiojn de la tabelo.
Legu Pli: VBA por Akiri Unika Valoroj de Kolumno en Tabelon en Excel (3 Kriterioj)
Similaj Legoj
- Kiel Nomi Tabelan Tabelon en Excel (Kun Facilaj Paŝoj)
- Excel VBA por Legi CSV-dosieron en Tabelon (4 Idealaj Ekzemploj)
- Kiel Konverti Gamon al Tabelo en ExcelVBA (3 Manieroj)
- Excel VBA: Forigi Duplikatojn de Tabelo (2 Ekzemploj)
2. ReDim Konservi Ambaŭ Dimensiojn 2D Tabelon en Excel VBA
En ĉi tiu fina metodo, ni montros al vi la paŝojn por regrandigi kaj " ReDim Preserve " la 2D-tabelo . Ĉi tie, ni uzos la funkcion VBA Transpose por regrandigi la malsupran limon de la tabelo. Se ni provis regrandigi la malsupran limon de la tabelo en la unua metodo, tiam ni vidos la eraron " Subskribo ekster intervalo ". Nun, sen pli da tempo, ni vidu kiel ni povas ripari tion kaj atingi nian celon.
Paŝoj:
- Unue, kiel montrite en la unua metodo , aperigu la fenestron Modulo .
- Due, aldonu la sekvajn kodliniojn en la unua kodo.
4620
- Cetere, la kodo por la fina metodo aspektas tiel.
9362
VBA-Kodo-Difekto
- Unue, ni nomas la Subproceduron " ReDim_Preserve_2D_Array_Both_Dimensions " .
- Do, la ceteraj kodoj ĝis la funkcio VBA Transpose estas la samaj kiel en la unua kodo.
- Jen ni ni estas transponantaj la tabelon.
- Tiam, ni pliigas la supran limon de la tabelo.
- Post tio, ni denove transponas la tabelon. Sekve, finfine ĝi ŝanĝos la malsupran limon.
- Sekva, ni enigas la valorojn por la regrandigita tabelo dumkonservante la malnovajn datumojn.
- Fine, ni skribas la valorojn al la ĉela gamo C6:E9 .
- Post ke, kiel montrite en la unua metodo , Rulu ĉi tiun kodon.
- Tial ni povas bildigi kiel la kodo konservas 2D tabelo uzante la " ReDim Preserve " kaj la VBA Transpose funkcion.
Legu Pli: VBA por Transmeti Tabelon en Excel (3 Metodoj)
Aferoj Por Memori
- ReDim Preserve ne povas ŝanĝi la malsupran limon de la tabelo. Por fari tion, ni devas uzi la funkcion Transmeti .
- Ni nur povas uzi ReDim ĉe dinamikaj tabeloj.
Konkludo
Ni montris al vi du rapidajn manierojn por " ReDim Preserve " 2D tabelo en Excel VBA. Se vi alfrontas problemojn pri ĉi tiuj metodoj aŭ havas ajnan komenton por mi, bonvolu komenti sube. Cetere, vi povas viziti nian retejon ExcelWIKI por pli da Excel-rilataj artikoloj. Dankon pro legado, daŭre elstari!