Excel VBA တွင် 2D Array ကို ReDim ထိန်းသိမ်းနည်း (လွယ်ကူသောနည်းလမ်း 2 ခု)

  • ဒါကိုမျှဝေပါ။
Hugh West

အခင်းအကျင်းတစ်ခုသည် တူညီသောဒေတာအမျိုးအစားများကို သိမ်းဆည်းထားသည့် variable တစ်ခုဖြစ်သည်။ အတန်းတစ်ခု သို့မဟုတ် ဒေတာကော်လံတစ်ခုသာရှိလျှင် ၎င်းကို တစ်ဖက်မြင် ခင်းကျင်းမှုဟု ခေါ်သည်။ သို့သော်၊ အတန်းနှင့်ကော်လံတစ်ခုထက်ပိုသောအခါ၊ ၎င်းကို 2D array ဟုခေါ်သည်။ VBA တွင် array တစ်ခုကို အရွယ်အစားပြောင်းရန် ReDim ကို အသုံးပြုပါသည်။ ထို့အပြင်၊ ကျွန်ုပ်တို့သည် ဒေတာဟောင်းကို နဂိုအတိုင်းထားရန် သော့ချက်စာလုံးကို ReDim ဖြင့် အသုံးပြုပါသည်။ ဤဆောင်းပါးသည် သင့်အား 2 ReDim Preserve ” တွင် 2D array ကို Excel VBA<တွင် အမြန်နည်းလမ်းများကို ပြသပါမည်။ 3>

လေ့ကျင့်ရေးစာအုပ်ကို ဒေါင်းလုဒ်လုပ်ပါ

Macro to ReDim Preserve 2D.xlsm

အသုံးဝင်သောနည်းလမ်း ၂ ခု ReDim သည် Excel VBA တွင် 2D Array ကိုထိန်းသိမ်းထားပါ

၎င်းသည် 2D အခင်းအကျင်း မှ ဖန်တီးထားသော အခြေခံဒေတာအတွဲဖြစ်သည်။ ပထမဆုံးအနေနဲ့ ဒီ array ကို ဖန်တီးပါမယ်။ ထို့နောက် ဤ array တွင် နောက်ထပ်ကော်လံတစ်ခုကို ထည့်ပါမည်။ ထိုသို့လုပ်ဆောင်ရန် “ ReDim Preserve ” ကို အသုံးပြုပါမည်။ ထို့အပြင်၊ ၎င်းကိုအသုံးမပြုပါက မည်သို့ဖြစ်မည်ကို ကျွန်ုပ်တို့သရုပ်ပြပါမည်။

ပုံမှန်အားဖြင့်၊ ကျွန်ုပ်တို့သည် array ၏နောက်ဆုံးအတိုင်းအတာ (ဆိုလိုသည်မှာ ကော်လံများ သို့မဟုတ် အပေါ်ဘက်ဘောင်များ) ကိုသာ ပြောင်းလဲနိုင်သည်။ ကျွန်ုပ်တို့သည် array ကို ဘာသာပြန်ပြီး၊ ထို့နောက် နောက်ဆုံးအတိုင်းအတာကို ပြောင်းကာ Excel VBA တွင် 2D array ၏ အတိုင်းအတာ နှစ်ခုလုံးကို အရွယ်အစားပြောင်းရန် ထပ်မံ၍ ကူးပြောင်းပါမည်။

1 . ReDim သည် နောက်ဆုံး Dimension 2D Array ကို ထိန်းသိမ်းထား

ကျွန်ုပ်တို့သည် 2D array ကို dynamic အဖြစ် ဦးစွာ သတ်မှတ်ပါမည်။ ထို့နောက် ReDim ကြေညာချက်ကို အသုံးပြု၍ ကျွန်ုပ်တို့သည် တစ်ခုဖန်တီးပါမည်။အတန်းသုံးတန်းနှင့် ကော်လံနှစ်ခုပါသည့် array။ နောက်ဆုံးအနေဖြင့်၊ ကျွန်ုပ်တို့သည် Preserve သော့ချက်စာလုံး ဖြင့် ထပ်မံအသုံးပြုပါမည်။ နှစ်ဘက်မြင် array ၏ အပေါ်ဘက်ဘောင်ကို တိုးပါ။

အဆင့်များ-

  • အစပြုရန်၊ ALT+F11 ကိုနှိပ်ပါ။ VBA Module window ကိုတက်လာစေရန်။ တစ်နည်းအားဖြင့် သင်သည် ၎င်းကို Developer tab မှ → Visual Basic ကိုရွေးချယ်ပါ။
  • ထို့နောက် Insert tab → Module ကိုရွေးချယ်ပါ။ ဤနေရာတွင် VBA ကုဒ်ကို ရိုက်ထည့်ပါမည်။

  • ထို့နောက်၊ Module တွင် အောက်ပါကုဒ်ကို ရိုက်ထည့်ပါ။ ဝင်းဒိုး။
9190

VBA ကုဒ်ခွဲခြမ်းစိတ်ဖြာ

  • ပထမဦးစွာ ကျွန်ုပ်တို့ခေါ်ဆိုနေသည် Sub process Redim_Preserve_2D_Array_Row ”.
  • ထို့နောက်၊ ကျွန်ုပ်တို့သည် ပြောင်းလဲနိုင်သော Our_Array ကို dynamic array အဖြစ်ကြေငြာပါသည်။
  • နောက်တစ်ခု၊ ကျွန်ုပ်တို့သည် array ၏အရွယ်အစားကို သတ်မှတ်သည်။ အောက်ဘောင်သည် 3 ၊ အထက်ဘောင်သည် 2 ဖြစ်ပြီး နှစ်ခုစလုံးသည် 1 မှ စတင်ပါသည်။
  • ထို့နောက်၊ ကျွန်ုပ်တို့သည် array သို့ တန်ဖိုးများကို သတ်မှတ်ပေးပါသည်။ .
  • ထို့နောက်၊ ကျွန်ုပ်တို့သည် တန်ဖိုးများကို C6:D8 ဆဲလ်အကွာအဝေးသို့ ထည့်သွင်းပါသည်။
  • ထို့နောက်၊ ကုဒ်ကို လုပ်ဆောင်ပါမည်။
  • ထို့ကြောင့် Save Module ပြီး Run<ကိုနှိပ်ပါ။ 3>

  • ထို့ကြောင့်၊ ၎င်းသည် တန်ဖိုးများကို သတ်မှတ်ဆဲလ်အပိုင်းအခြားများသို့ ပြန်ပေးပါမည်။ “ Rachel ” သည် အတန်း 1 နှင့် ကော်လံ 1 အနေအထား၊VBA ကုဒ်တွင် ( 1,1 ) အဖြစ် သတ်မှတ်ခဲ့သည်။

  • ယခု၊ ကျွန်ုပ်တို့သည် array ကို အရွယ်အစားပြောင်းပါမည်။
  • ထို့ကြောင့်၊ ၎င်းကို ယခင်ကုဒ်သို့ ပေါင်းထည့်ကာ ပထမ Range.Value statement ကို ဖယ်ရှားပါ။ ထို့အပြင်၊ ကုဒ်၏ပုံသဏ္ဌာန်ကို အောက်တွင် လျှပ်တစ်ပြက်ရိုက်ချက်မှ ကြည့်ရှုနိုင်ပါသည်။
5741

  • ဤတွင်၊ ကျွန်ုပ်တို့သည် အပေါ်ပိုင်းဘောင်ကို ( ) မှ တိုးမြှင့်ထားသည်။ 1 သို့ 2 ) မှ ( 1 သို့ 3 ) သို့ 1 .
  • ထို့နောက်၊ ကျွန်ုပ်တို့သည် array တွင် တန်ဖိုးများကို ပေါင်းထည့်လိုက်ပါသည်။
  • ယခုကျွန်ုပ်တို့သည် ဤကုဒ်ကို လုပ်ဆောင်ပါက၊ ယခင်တန်ဖိုးများကို သိမ်းဆည်းထားခြင်းမရှိသည်ကို တွေ့ရမည်ဖြစ်ပါသည်။ ၎င်းသည် ယခင်တန်ဖိုးများအတွက် ဗလာပြန်ဖြစ်သွားပါမည်။

  • ယခု သော့ချက်စကားလုံးကို သိမ်းဆည်းပါ ထဲသို့ ထည့်ခြင်းဖြင့် ၎င်းကို ကျွန်ုပ်တို့ ပြင်ဆင်နိုင်ပါသည် 1>ReDim ကြေငြာချက် ။
  • နောက်ဆုံးတွင်၊ ကျွန်ုပ်တို့၏ကုဒ်အပြည့်အစုံမှာ ဤအတိုင်းဖြစ်ပါမည်။
6325

  • ယခုဆိုလျှင် ကျွန်ုပ်တို့ ဤကုဒ်ကို Run ၊ ထို့နောက် ထွက်ပေါက်သည် ဤကဲ့သို့ ဖြစ်လိမ့်မည်။ ထို့ကြောင့်၊ Excel VBA တွင် 2D array ၏ နောက်ဆုံးအတိုင်းအတာ “ ReDim Preserve ” ကို ပေးပါမည်။ ယခု၊ နောက်နည်းလမ်းတစ်ခုက “ ReDim လုပ်နည်းကို ပြပါမည်။ ” ကို သိမ်းထားပြီး array ၏ အတိုင်းအတာ နှစ်ခုလုံးကို အရွယ်အစားပြောင်းပါ။

Read More- VBA သီးသန့်ရယူရန် Excel ရှိ Column မှ Array သို့ တန်ဖိုးများ (3 သတ်မှတ်ချက်)

Similar Readings

  • Excel တွင် Table Array ကို အမည်မည်နည်း (ဖြင့် လွယ်ကူသောအဆင့်များ)
  • CSV ဖိုင်ကို Array သို့ဖတ်ရန် Excel VBA (စံပြနမူနာ 4 ခု)
  • Excel တွင် Range သို့ Array ပြောင်းနည်းVBA (နည်းလမ်း 3 ခု)
  • Excel VBA- ပွားနေသော Array တစ်ခုမှ ဖယ်ရှားပါ (ဥပမာ 2 ခု)

2. ReDim သည် Dimensions 2D Array နှစ်ခုလုံးကို သိမ်းဆည်းထားပါ Excel VBA

ဤနောက်ဆုံးနည်းလမ်းတွင်၊ အရွယ်အစားပြောင်းရန် အဆင့်များနှင့် “ ReDim Preserve 2D array ကို သင့်အား ပြသပါမည်။ ဤတွင်၊ ကျွန်ုပ်တို့သည် array ၏ အောက်ဘောင်ကို အရွယ်အစားပြောင်းရန် VBA Transpose လုပ်ဆောင်ချက်ကို အသုံးပြုပါမည်။ ပထမနည်းလမ်းတွင် array ၏အောက်ပိုင်းဘောင်ကို အရွယ်အစားပြောင်းလဲရန် ကြိုးစားပါက “ Subscript out of range ” error ကိုတွေ့ရပါမည်။ ယခု နောက်ထပ် မသဲကွဲဘဲ၊ ၎င်းကို ကျွန်ုပ်တို့ မည်သို့ ပြုပြင်နိုင်ပြီး ကျွန်ုပ်တို့၏ ပန်းတိုင်ကို အောင်မြင်နိုင်သည်ကို ကြည့်ကြပါစို့။

အဆင့်များ-

  • ပထမဦးစွာ၊ ပထမနည်းလမ်းတွင်ပြထားသည့်အတိုင်း Module ဝင်းဒိုးကို ယူဆောင်လာပါ။
  • ဒုတိယအနေဖြင့်၊ အောက်ဖော်ပြပါ ကုဒ်စာကြောင်းများထဲသို့ အောက်ပါစာကြောင်းများကို ထည့်ပါ။ ပထမကုဒ်။
2637
  • ထို့ပြင်၊ နောက်ဆုံးနည်းလမ်းအတွက် ကုဒ်သည် ဤကဲ့သို့ ဖြစ်ပုံရသည်။
5603

VBA ကုဒ်ခွဲခြမ်းစိတ်ဖြာခြင်း

  • ပထမဦးစွာ၊ ကျွန်ုပ်တို့သည် Sub process ReDim_Preserve_2D_Array_Both_Dimensions ” ကို ခေါ်ပါသည်။
  • ထို့နောက်၊ VBA Transpose လုပ်ဆောင်ချက်အထိ ကျန်သောကုဒ်များသည် ပထမကုဒ်တွင် တူညီပါသည်။
  • ဤတွင်၊ ကျွန်ုပ်တို့၊ array ကို transposing လုပ်နေသည်။
  • ထို့နောက်၊ ကျွန်ုပ်တို့သည် array ၏ အပေါ်ဘက်ဘောင်ကို တိုးမြှင့်နေပါသည်။
  • ထို့နောက်၊ ကျွန်ုပ်တို့သည် array ကို ထပ်မံ၍ ဘာသာပြန်ပါသည်။ ထို့ကြောင့်၊ နောက်ဆုံးတွင် ၎င်းသည် အောက်ခြေဘောင်ကို ပြောင်းလဲသွားမည်ဖြစ်သည်။
  • နောက်တစ်ခု၊ အရွယ်အစားပြောင်းထားသည့် ခင်းကျင်းမှုအတွက် တန်ဖိုးများကို ထည့်သွင်းစဉ်တွင်၊ဒေတာဟောင်းကို ထိန်းသိမ်းထားသည်။
  • နောက်ဆုံးတွင်၊ ကျွန်ုပ်တို့သည် တန်ဖိုးများကို ဆဲလ်အကွာအဝေး C6:E9 သို့ ရေးပါသည်။
  • ပြီးနောက် ပထမနည်းလမ်းတွင်ပြထားသည့်အတိုင်း ဤကုဒ်ကိုဖွင့်ပါ
  • ထို့ကြောင့် ကုဒ်တစ်ခုအား မည်သို့ထိန်းသိမ်းထားသည်ကို ကျွန်ုပ်တို့မြင်ယောင်နိုင်သည် ။ “ ReDim Preserve ” နှင့် VBA Transpose လုပ်ဆောင်ချက်ကို အသုံးပြု၍ 2D အခင်းအကျင်း

Read More- VBA to Transpose Array in Excel (3 Methods)

မှတ်ထားရမည့်အရာ

  • ReDim Preserve သည် array ၏အောက်ပိုင်းဘောင်ကို မပြောင်းလဲနိုင်ပါ။ ထိုသို့ပြုလုပ်ရန်၊ ကျွန်ုပ်တို့သည် Transpose လုပ်ဆောင်ချက်ကို အသုံးပြုရန်လိုအပ်ပါသည်။
  • ကျွန်ုပ်တို့သည် dynamic arrays များတွင် ReDim ကိုသာ အသုံးပြုနိုင်ပါသည်။

နိဂုံးချုပ်

Excel VBA တွင် “ ReDim Preserve ” ကို 2D array အတွက် အမြန်နည်းလမ်းနှစ်ခုကို သင့်အား ပြသထားပါသည်။ အကယ်၍ သင်သည် ဤနည်းလမ်းများနှင့် ပတ်သက်၍ ပြဿနာတစ်စုံတစ်ရာ ကြုံတွေ့ရပါက သို့မဟုတ် ကျွန်ုပ်အတွက် တုံ့ပြန်ချက်တစ်စုံတစ်ရာရှိပါက အောက်တွင် လွတ်လပ်စွာ မှတ်ချက်ပေးနိုင်ပါသည်။ ထို့အပြင်၊ Excel နှင့်ပတ်သက်သည့် နောက်ထပ်ဆောင်းပါးများအတွက် ကျွန်ုပ်တို့၏ site ExcelWIKI သို့ ဝင်ရောက်ကြည့်ရှုနိုင်ပါသည်။ ဆက်လက်ဖတ်ရှုပေးသည့်အတွက် ကျေးဇူးတင်ပါသည်။

Hugh West သည် လုပ်ငန်းနယ်ပယ်တွင် အတွေ့အကြုံ 10 နှစ်ကျော်ရှိသော Excel သင်တန်းဆရာနှင့် ခွဲခြမ်းစိတ်ဖြာသူဖြစ်သည်။ စာရင်းကိုင်နှင့် ဘဏ္ဍာရေးဆိုင်ရာဘွဲ့နှင့် စီးပွားရေးစီမံခန့်ခွဲမှု မဟာဘွဲ့တို့ကို ရရှိထားသူဖြစ်သည်။ Hugh သည် သင်ကြားရေးကို ဝါသနာပါပြီး လိုက်နာရန်နှင့် နားလည်ရန်လွယ်ကူသော ထူးခြားသောသင်ကြားရေးနည်းလမ်းကို တီထွင်ခဲ့သည်။ Excel ၏ ကျွမ်းကျင်သော အသိပညာသည် ကမ္ဘာတစ်ဝှမ်းရှိ ထောင်ပေါင်းများစွာသော ကျောင်းသားများနှင့် ပရော်ဖက်ရှင်နယ်များကို ၎င်းတို့၏ ကျွမ်းကျင်မှုနှင့် ၎င်းတို့၏ အသက်မွေးဝမ်းကြောင်းတွင် ထူးချွန်အောင် ကူညီပေးခဲ့သည်။ သူ၏ဘလော့ဂ်မှတစ်ဆင့်၊ Hugh သည် လူတစ်ဦးချင်းစီနှင့် လုပ်ငန်းများ၏ အလားအလာများ ပြည့်မီစေရန်အတွက် အခမဲ့ Excel သင်ခန်းစာများနှင့် အွန်လိုင်းသင်တန်းများကို ပေးဆောင်ကာ သူ၏အသိပညာကို ကမ္ဘာနှင့်မျှဝေပါသည်။