Агуулгын хүснэгт
Массив нь ижил төрлийн өгөгдлийг хадгалдаг хувьсагч юм. Хэрэв зөвхөн нэг мөр эсвэл нэг багана өгөгдөл байгаа бол үүнийг нэг хэмжээст массив гэж нэрлэдэг. Гэхдээ нэгээс олон мөр, баганатай бол үүнийг 2D массив гэж нэрлэдэг. VBA дахь массивын хэмжээг өөрчлөхийн тулд бид ReDim -г ашигладаг. Нэмж дурдахад бид хуучин өгөгдлийг бүрэн бүтэн байлгахын тулд Preserve түлхүүр үгийг ReDim -тэй хамт ашигладаг. Энэ нийтлэл нь танд Excel VBA<дээр 2D массив -г “ ReDim Preserve ” хийх 2 хурдан арга замыг харуулах болно. 3> .
Дадлага хийх номыг татаж авах
Macro to ReDim Preserve 2D.xlsm
2 Хэрэгтэй арга Excel VBA дахь ReDim Preserve 2D массив
Энэ нь гурван мөр, хоёр багана бүхий 2D массив -аас үүсгэсэн үндсэн мэдээллийн багц юм. Эхлээд бид энэ массивыг үүсгэх болно. Дараа нь бид энэ массив дээр өөр багана нэмнэ. Үүнийг хийхийн тулд бид “ ReDim Preserve ”-ийг ашиглана. Нэмж дурдахад бид үүнийг ашиглахгүй бол юу болохыг харуулах болно.
Өгөгдмөл байдлаар бид зөвхөн массивын сүүлчийн хэмжээсийн (жишээ нь багана эсвэл дээд хязгаар) хэмжээг өөрчлөх боломжтой. Excel VBA дээрх 2D массив -ын хоёр хэмжээсийг өөрчлөхийн тулд бид массивыг шилжүүлж, дараа нь сүүлчийн хэмжээсийг өөрчилнө.
1 ReDim Сүүлийн хэмжээст 2D массивыг хадгалах
Бид эхлээд 2D массив -ийг динамик гэж тодорхойлох болно. Дараа нь ReDim хэллэгийг ашиглан бид үүсгэнэгурван мөр, хоёр багана бүхий массив. Эцэст нь бид ReDim хэллэгийг дахин Хадгалах түлхүүр үг -д ашиглана. хоёр хэмжээст массивын дээд хязгаарыг нэмэгдүүлэх.
Алхам:
- Эхлэхийн тулд ALT+F11 дарна уу. VBA модуль цонхыг гаргахын тулд . Эсвэл та үүнийг Хөгжүүлэгч табаас → Visual Basic -г сонгоно уу.
- Дараа нь Оруулах таб → Модуль -г сонгоно. Бид VBA кодыг энд бичнэ.
- Дараа нь Модуль -д дараах кодыг бичнэ үү. цонх.
8109
VBA кодын задаргаа
- Нэгдүгээрт, бид залгаж байна. Дэд процедур “ Redim_Preserve_2D_Array_Row ”.
- Дараа нь Манай_Масив хувьсагчийг динамик массив гэж зарлана.
- Дараа нь бид массивын хэмжээг тодорхойлно. Доод хязгаар нь 3 , дээд хязгаар нь 2 бөгөөд хоёулаа 1 -ээс эхэлнэ.
- Дараа нь массивын утгыг онооно. .
- Үүний дараа бид C6:D8 нүдний мужид утгуудыг оруулна.
- Үүний дараа бид кодыг гүйцэтгэх болно.
- Тиймээс Хадгалах Модуль Ажиллуулах<товчийг дарна уу. 3> .
- Үүний үр дүнд энэ нь тодорхойлсон нүдний мужид утгуудыг буцаана. Бид “ Рэйчел ” мөр 1 ба баганын 1 байрлалд байгааг харж болно.VBA кодонд ( 1,1 ) гэж тодорхойлсон.
- Одоо бид массивын хэмжээг өөрчлөх болно.
- Тиймээс үүнийг өмнөх код дээр нэмээд эхний Range.Value хэллэгийг хас. Үүнээс гадна, код хэрхэн харагдахыг доорх агшин зуурын зургаас харж болно.
3069
- Энд бид ( )-ийн дээд хязгаарыг нэмэгдүүлсэн. 1 Хүртэл 2 )-аас ( 1 Хүртэл 3 ) 1 .
- Дараа нь бид массивын утгуудыг нэмсэн.
- Одоо энэ кодыг ажиллуулбал өмнөх утгууд хадгалагдаагүй байгааг харах болно. Энэ нь өмнөх утгуудын хоосон зайг буцаана.
- Одоо бид Хадгалах түлхүүр үгийг <-д нэмснээр үүнийг засах боломжтой. 1>ReDim мэдэгдэл .
- Эцэст нь бидний бүтэн код энэ байх болно.
6134
- Одоо хэрэв бид <Энэ кодыг 1> ажиллуулна тэгвэл гаралт ийм болно. Тиймээс бид Excel VBA дахь 2D массивын сүүлийн хэмжээсийг " ReDim Preserve " болгоно. Одоо дараагийн арга нь " ReDim"-ийг хэрхэн хийхийг харуулах болно. Хадгалах ” болон массивын хоёр хэмжээсийг өөрчил.
Дэлгэрэнгүй: Өвөрмөц болгохын тулд VBA Excel дэх баганаас массив руу орох утгууд (3 шалгуур)
Төстэй уншилтууд
- Excel дээр хүснэгтийн массивыг хэрхэн нэрлэх вэ Хялбар алхамууд)
- Excel VBA-аас CSV файлыг массив болгон унших (4 тохиромжтой жишээ)
- Excel дээр хэрхэн мужийг массив болгон хөрвүүлэх вэVBA (3 арга)
- Excel VBA: Массиваас давхардлыг арилгах (2 жишээ)
2. ReDim хоёр хэмжээст 2D массивыг хадгалах Excel VBA
Энэхүү эцсийн аргад бид 2D массив -ийн хэмжээг өөрчлөх болон “ ReDim Preserve ” хийх алхмуудыг харуулах болно. Энд бид VBA Transpose функцийг ашиглан массивын доод хязгаарын хэмжээг өөрчлөх болно. Хэрэв бид эхний аргаар массивын доод хязгаарын хэмжээг өөрчлөх гэж оролдсон бол " Далд тэмдэгт мужаас гадуур " гэсэн алдаа гарч ирнэ. Одоо, олон зүйл нуршилгүйгээр үүнийг хэрхэн засч, зорилгодоо хүрэхийг харцгаая.
Алхам:
- Нэгдүгээрт, эхний аргын дагуу Модуль цонхыг гарга.
- Хоёрдугаарт, дараах мөрүүдийг код руу нэмнэ. эхний код.
8178
- Түүнээс гадна эцсийн аргын код нь иймэрхүү харагдаж байна.
7148
VBA кодын задаргаа
- Нэгдүгээрт, бид Дэд процедурыг “ ReDim_Preserve_2D_Array_Both_Dimensions ” гэж нэрлэж байна. .
- Тэгвэл VBA Transpose функц хүртэлх бусад кодууд эхний кодтой адил байна.
- Энд бид массивыг шилжүүлж байна.
- Дараа нь массивын дээд хязгаарыг нэмэгдүүлж байна.
- Үүний дараа бид массивыг дахин шилжүүлнэ. Тиймээс эцэст нь энэ нь доод хязгаарыг өөрчилнө.
- Дараа нь бид хэмжээг өөрчлөх үед массивын утгуудыг оруулна.хуучин өгөгдлийг хадгалах.
- Эцэст нь C6:E9 нүдний мужид утгуудыг бичнэ.
- Дараа нь Энэ нь эхний аргын дагуу , ажиллуулна энэ код.
- Тиймээс бид код нь -г хэрхэн хадгалж байгааг төсөөлж чадна. “ ReDim Preserve ” болон VBA Transpose функцийг ашиглан 2D массив .
Дэлгэрэнгүй: Excel дээр массив шилжүүлэх VBA (3 арга)
Санаж байх зүйлс
- ReDim Preserve нь массивын доод хязгаарыг өөрчлөх боломжгүй. Үүнийг хийхийн тулд бид Transpose функцийг ашиглах хэрэгтэй.
- Бид зөвхөн ReDim -г динамик массив дээр ашиглах боломжтой.
Дүгнэлт
Бид Excel VBA дээр 2D массив -г “ ReDim Preserve ” болгох хоёр хурдан арга замыг харуулсан. Хэрэв танд эдгээр аргуудтай холбоотой ямар нэгэн асуудал тулгарвал эсвэл надад санал хүсэлт байвал доор сэтгэгдэл үлдээнэ үү. Мөн та Excel-тэй холбоотой бусад нийтлэлүүдийг манай ExcelWIKI сайтаас үзэх боломжтой. Уншсанд баярлалаа, амжилтаа үргэлжлүүлээрэй!