Excel တွင် VBA ဖြင့် စာကြောင်းရှာနည်း (ဥပမာ 8 ခု)

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

အကောင်အထည်ဖော်ခြင်း VBA သည် Excel တွင် မည်သည့်လုပ်ဆောင်ချက်ကိုမဆို လုပ်ဆောင်ရန် အထိရောက်ဆုံး၊ အမြန်ဆန်ဆုံးနှင့် အလုံခြုံဆုံးနည်းလမ်းဖြစ်သည်။ ဤဆောင်းပါးတွင်၊ Excel တွင် VBA ကိုအသုံးပြု၍ အခြားပေးထားသောစာကြောင်းများတွင် အချို့သောစာကြောင်းများကို မည်သို့ရှာဖွေရမည်ကို သင်ပြသပါမည်။

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

သင် အခမဲ့ လက်တွေ့ Excel ပုံစံကို ဤနေရာမှ ဒေါင်းလုဒ်လုပ်နိုင်ပါသည်။

VBA to Find in String.xlsm

InStr Function

Microsoft Excel တွင် ပေးထားသည့် စာကြောင်းတစ်ခုရှိ သီးခြားစာကြောင်းများ၏ အနေအထားကို ရှာဖွေရန် InStr Function ဟုခေါ်သော ပေါင်းစပ်လုပ်ဆောင်မှုတစ်ခု ပါရှိသည်။

ယေဘုယျ Syntax-

InStr([start], string1, string2, [compare])

ဤတွင်၊

အကြောင်းပြချက်များ လိုအပ်သည်/ ရွေးချယ်နိုင်သည် အဓိပ္ပာယ်ဖွင့်ဆိုချက်
စတင် ရွေးချယ်နိုင်သော ရှာဖွေမှု၏စတင်မှုအနေအထား။
  • ပုံမှန်အားဖြင့်၊ InStr လုပ်ဆောင်ချက်သည် 1 မှ ရေတွက်ခြင်းဖြင့် စာလုံးအနေအထားကို စတင်သည့်အနေအထားမှမဟုတ်ဘဲ 1 မှရေတွက်သည်။ ထို့ကြောင့်၊ သင်အလိုရှိပါက ဤကွက်လပ်ကို ချန်ထားနိုင်ပါသည်။
string1 လိုအပ်သည် ရှာဖွေရန်စာကြောင်း၊ Primary String။
string2 လိုအပ်သည် အဓိကစာကြောင်းတွင် ရှာဖွေရန် string .
နှိုင်းယှဉ် ရွေးချယ်နိုင်သော InStr လုပ်ဆောင်ချက်သည် မူရင်းအားဖြင့် စာလုံးအကြီးအသေး အထိသာဖြစ်သည်။ သို့သော် အကယ်၍ သင်သည် အကဲဆတ်သော InStr ကို လုပ်ဆောင်လိုပါက၊ အချို့သော နှိုင်းယှဉ်မှုကို လုပ်ဆောင်ရန် ဤနေရာတွင် အငြင်းအခုံကို ကျော်ဖြတ်နိုင်ပါသည်။ ဤအငြင်းအခုံသည် အောက်ပါအတိုင်းဖြစ်နိုင်သည်။တန်ဖိုးများ၊
  • vbBinaryCompare -> ဒွိနှိုင်းယှဥ်မှုကို လုပ်ဆောင်သည်၊ ပြန်တန်ဖိုး 0
  • vbTextCompare -> စာသားနှိုင်းယှဥ်မှုကို လုပ်ဆောင်သည်၊ တန်ဘိုး 1
  • vbDatabaseCompare -> ဒေတာဘေ့စ် နှိုင်းယှဉ်မှုကို လုပ်ဆောင်သည်၊ ပြန်တန်ဖိုး 2

ပုံမှန်အားဖြင့်၊ InStr သည် vbBinaryCompare ကို နှိုင်းယှဉ် အကြောင်းပြချက်အဖြစ် ယူသည်။

8 VBA ကိုအသုံးပြု၍ ပေးထားသောစာကြောင်းတွင် သတ်သတ်မှတ်မှတ်စာတန်းအနေအထားကိုရှာရန် လွယ်ကူသောဥပမာများ

ပေးထားသောစာကြောင်းတစ်ကြောင်းရှိ အချို့သောစာကြောင်းများ၏နေရာများကိုရယူရန် ရိုးရှင်းသောဥပမာအချို့ကို ကြည့်ပါ။ VBA

1. VBA သည် String တွင် စာသားအနေအထားကိုရှာရန်

အောက်တွင်ဖော်ပြထားသော InStr ၏ ဥပမာတစ်ခုဖြစ်သည်။ စာကြောင်းတစ်ခုရှိ စာသားအနေအထား။

  • သင့်ကီးဘုတ်ပေါ်ရှိ Alt + F11 ကိုနှိပ်ပါ သို့မဟုတ် တက်ဘ်သို့သွားပါ ဆော့ဖ်ဝဲရေးသားသူ -> Visual Basic Editor ကိုဖွင့်ရန် Visual Basic

  • ပေါ့ပ်အပ်ကုဒ်ဝင်းဒိုးတွင် မီနူးဘားမှ၊ Insert -> ကိုနှိပ်ပါ။ မော်ဂျူး

  • ယခု ကုဒ်ဝင်းဒိုးတွင်၊ VBA Sub တစ်ခုအတွင်း ရိုးရိုး InStr ပရိုဂရမ်တစ်ခုကို ရေးပါ။ လုပ်ထုံးလုပ်နည်း (အောက်တွင်ကြည့်ပါ)။
6962

သင့်ကုဒ်ကို ယခုဖွင့်ရန် အဆင်သင့်ဖြစ်ပါပြီ။

  • နှိပ် F5 သင့်ကီးဘုတ်ပေါ်တွင် သို့မဟုတ် မီနူးဘားမှ Run -> Sub/UserForm ကိုဖွင့်ပါ။ မက်ခရိုကိုလည်ပတ်ရန် မီနူးဘားရှိ သေးငယ်သော Play အိုင်ကွန် ကို နှိပ်ရုံသာဖြစ်သည်။

ထိုအရာကို သင်တွေ့မြင်ရပါလိမ့်မည်။ ပေါ်လာသော မက်ဆေ့ဘောက်စ်တွင် နံပါတ်တစ်ခု ပေးပါမည်။သင်စစ်ဆေးလိုသော စာသား၏ အနေအထားကို ကြေညာခြင်း။

ရှင်းလင်းချက်-

ကျွန်ုပ်တို့၏ အဓိကစာတန်း၊ “ ပျော်ရွှင်မှု ရွေးချယ်မှုတစ်ခု ” သည် စာလုံး 21 ကြောင်း (နေရာလွတ်များပါရှိသော) ဖြစ်ပြီး ထိုစာကြောင်းတွင် “ choice ” စာသား၏ အနေအထားကို ရှာတွေ့လိုပါသည်။ “ ရွေးချယ်မှု ” ဟူသော စာသားသည် ပင်မစာကြောင်း၏ 16 ခုမြောက် အနေအထားမှ စတင်ခဲ့သည်၊ ထို့ကြောင့် ကျွန်ုပ်တို့သည် မက်ဆေ့ချ်ဘောက်စ်တွင် ကျွန်ုပ်တို့၏ ထွက်ပေါက်အဖြစ် နံပါတ် 16 ရရှိခဲ့ပါသည်။

၂။ String ရှိ သတ်မှတ်ထားသော အနေအထားမှ စာသားကို ရှာရန် VBA

ယခု နံပါတ်တစ်ခုမှ ရာထူးကို ရယူလိုပါက ဘာဖြစ်မည်ကို ရှာဖွေကြည့်ကြပါစို့။

  • ထိုနည်းအတိုင်းပင် အရင်က၊ Visual Basic Editor ကိုဖွင့်ပြီး Developer တက်ဘ်ကနေ Insert a Module ကို ကုဒ်ဝင်းဒိုးထဲမှာ
  • ထဲမှာ။ ကုဒ်ဝင်းဒိုးတွင်၊ အထက်တွင်ပြသထားသည့် ရိုးရှင်းသော InStr ပရိုဂရမ်ကိုရေးပြီး သင့်စာသားကိုရေတွက်လိုသည့်အနေအထားအရ စတင်သည့်အငြင်းအခုံတွင် တန်ဖိုးကိုဖြတ်သန်းပါ။
5916

  • နောက်တစ်ခု၊ ကုဒ်ကိုဖွင့်ပါ

ပေါ်လာသော မက်ဆေ့ချ်ဘောက်စ် ပေါ်လာသည်ကို သင်တွေ့ရပါမည်။ သင်စစ်ဆေးလိုသော အနေအထားတစ်ခုမှ စတင်သည့် စာသား၏ ရာထူး နံပါတ်ကို ဖော်ပြသည့် နံပါတ်တစ်ခု ပေးပါ။

ရှင်းလင်းချက်-

ကျွန်ုပ်တို့သိထားပြီးဖြစ်သည့်အတိုင်း (အဆင့် 1 ဆွေးနွေးမှုမှ) “ ရွေးချယ်မှု ” ဟူသော စာသားသည် 16 အနေအထားမှ စတင်ခဲ့သည်၊ ထို့ကြောင့် ကျွန်ုပ်တို့သည် “နှစ်ခုကို ထည့်သွင်းပါ ပင်မစာကြောင်းတွင် ရွေးချယ်မှု ” နှင့် 17 ကို ကျွန်ုပ်တို့အဖြစ် သတ်မှတ်ပါပထမ “ ရွေးချယ်မှု ” ကို ကျော်ရန် ပထမ ဘောင်။ ထို့ကြောင့်၊ ကျွန်ုပ်တို့ အပေါ်က မက်ခရို ကို Run ပြီး ၎င်းသည် ဒုတိယ ရွေးချယ်မှု ” ၏ တည်နေရာနံပါတ် အတိအကျဖြစ်သည့် တည်နေရာနံပါတ် 27 ကို ပြပေးပါသည်။ ပေးထားသောစာကြောင်းတွင်။

၃။ String ရှိ Case-insensitive InStr Function ပါသော စာသားကိုရှာရန် VBA

InStr လုပ်ဆောင်ချက်ကို သင်သိထားပြီးသားဖြစ်သည်၊ ပုံမှန်အားဖြင့် InStr လုပ်ဆောင်ချက် case sensitive ဖြစ်တယ်။ အဲဒါကို ဥပမာတစ်ခုနဲ့ ရှာကြည့်ရအောင်။

Choice စကားလုံးရဲ့ အနေအထားကို ရှာချင်ခဲ့တဲ့ အောက်ဖော်ပြပါ VBA ကုဒ်ကို ကြည့်ပါ။ ” ဟူသောစာတန်းတွင် မြို့တော် “C” ဖြင့် “ ပျော်ရွှင်မှုသည် ရွေးချယ်မှုတစ်ခု ” ဟူသော ရွေးချယ်မှုကို သေးငယ်သော “c” ဖြင့် ရေးထားသည်။ .

  • ကုဒ် ကိုဖွင့်ပြီး ကျွန်ုပ်တို့၏ထွက်ပေါက်အဖြစ် 0 ကိုရှာပါ။

၎င်းသည် InStr လုပ်ဆောင်ချက်သည် မြို့တော် “C” နှင့် သေးငယ်သော “c” တို့ကို ကွာခြားသောကြောင့် ဖြစ်သည်။ ထို့ကြောင့် ၎င်းသည် စာတန်း၌ “ Choice ” ဟူသော စကားလုံးကို ရှာဖွေခဲ့ပြီး တူညီမှုတစ်ခုမျှ မရသောကြောင့် 0 သို့ ပြန်သွားခဲ့သည်။

  • InStr function ကို case-insensitive ကိုပြုလုပ်ရန်၊ နှိုင်းယှဉ်ပြချက်ကို vbTextCompare (အောက်တွင်ကြည့်ပါ)။
9799

  • ကုဒ် ကိုဖွင့်ပါ။

သင်သည် စာသား၏ အနေအထားကို ရရှိလိမ့်မည် စာသားကို စာလုံးအကြီး သို့မဟုတ် စာလုံးသေးသေးဖြင့်ရေးသည်ဖြစ်စေ string မှ

4. ကြိုးတစ်ချောင်း၏ညာဘက်မှ စာသားကိုရှာရန် VBA

ယခုအချိန်အထိ InStr function သည် string ၏ ဘယ်ဘက်ခြမ်းမှ အနေအထားကို ပေးစွမ်းနေပါသည်။ ဒါပေမယ့် စာကြောင်းရဲ့ ညာဘက်ခြမ်းက စာသားအနေအထားကို ရှာချင်ရင် ဘယ်လိုလုပ်မလဲ။

InStrRev Function က ညာဘက်ကနေ ရှာတယ်။ InStrRev လုပ်ဆောင်ချက်သည် InStr လုပ်ဆောင်ချက်နှင့် အလွန်ဆင်တူပြီး string ၏ ညာဘက်အခြမ်း မှ စာသားအနေအထားကို သင့်အား တွေ့ရှိမည်ဖြစ်သည်။

ကွာခြားချက်ကို နားလည်ရန် အောက်ပါနမူနာများကို ကြည့်ပါ။

  • ကျွန်ုပ်တို့သည် InStr လုပ်ဆောင်ချက်ဖြင့် အောက်ပါကုဒ်ကို လုပ်ဆောင်ပါက၊

၎င်းသည် ကျွန်ုပ်တို့အား ပထမစာသား “ ရွေးချယ်မှု ” ၏ အနေအထား ( 16 ) ကိုပေးသည်။

  • သို့သော် InStrRev Function ဖြင့် တူညီသောကုဒ်ကို run ပါက၊

၎င်းသည် ကျွန်ုပ်တို့အား ရာထူးပေးပါသည်။ နောက်ဆုံးစာသား “ 27 ရွေးချယ်မှု ” ၏ ( 27 )။

အလားတူစာဖတ်ခြင်း-

  • Excel တွင် VBA ကိုအသုံးပြုခြင်းနောက်ဆက်တွဲကိုရှာပါ (ဥပမာ 2 ခု)
  • VBA ကိုအသုံးပြုပုံနှင့် အစားထိုးနည်း (နည်းလမ်း 11 ခု)
  • Excel တွင် VBA ကိုအသုံးပြု၍ အတိအကျကိုက်ညီမှုကိုရှာပါ (နည်းလမ်း 5 ခု)

၅။ VBA တွင် စာလုံးတစ်လုံး၏ အနေအထားကို ရှာရန်

သင်တွေ့သည့်ပုံစံအတိုင်း string တစ်ခုရှိ စာလုံးတစ်ခု၏ အနေအထားကိုလည်း သင်ရှာတွေ့နိုင်ပါသည်။

  • ကော်ပီကူးပါ။ သင့် VBA ကုဒ်ဝင်းဒိုးသို့ အောက်ပါကုဒ်
3366

  • ပြီးပါက မက်ခရိုကို လုပ်ဆောင်ပါ

ကျွန်ုပ်တို့၏ပေးထားသောစာကြောင်းရှိပထမ “ e ” သည်နံပါတ် 7 အနေအထား။

၆။ စာကြောင်းတစ်ကြောင်းရှိ Substring ကိုရှာရန် VBA

ဤနေရာတွင် ကျွန်ုပ်တို့သည် စာကြောင်းတစ်ကြောင်းတွင် စာတန်းခွဲ ပါရှိခြင်း ရှိ၊ မရှိ ရှာဖွေနည်းကို လေ့လာပါမည်။

ထိုသို့ရယူရန်၊ ကျွန်ုပ်တို့တွင် ရှိသည် ကျွန်ုပ်တို့၏ကုဒ်တွင် IF Statement ကို run ရန်။

  • ယခင်နည်းအတိုင်း၊ Developer tab မှ Visual Basic Editor ကိုဖွင့်ပြီး ကုဒ်ဝင်းဒိုးတွင် Module ကိုထည့်ပါ။
  • ကုဒ်ဝင်းဒိုးတွင်၊ အောက်ပါကုဒ်ကို ကူးယူပြီး ၎င်းကို ကူးထည့်ပါ။
1649

သင်၏ ကုဒ်ကို ယခုအသုံးပြုရန် အဆင်သင့်ဖြစ်ပါပြီ။

  • မက်ခရို ကို ဖွင့်ပါ။

သင်၏ စာတန်းတွင် စာတန်းခွဲများ ပါနေပါက၊ သင်သည် ကိုက်ညီမှုတွေ့ရှိသည် ကို ရရှိလိမ့်မည်၊ မဟုတ်ပါက ၎င်းသည် ကိုက်ညီမှုမရှိကြောင်း ပြန်ပေါ်လာပါလိမ့်မည်။ ကျွန်ုပ်တို့၏ဥပမာတွင်၊ ကျွန်ုပ်တို့၏မူလတန်းစာတန်းတွင် “ ပျော်ရွှင်ခြင်းသည် ရွေးချယ်မှုတစ်ခု ” တွင် “ ရွေးချယ်မှု ” ဟူသော စကားလုံးပါရှိခြင်း ရှိမရှိကို ရှာဖွေလိုပါသည်။ မဟုတ်ဘူး ယင်းကဲ့သို့ပင်၊ ကျွန်ုပ်တို့သည် ကိုက်ညီမှုတွေ့ရှိ ရလဒ်ကို ရရှိပါသည်။

၇။ ဆဲလ်အကွာအဝေးရှိ စာကြောင်းရှာဖွေရန် VBA

သင်သည် ဆဲလ်အကွာအဝေးရှိ စာကြောင်းအချို့ကို သင်ရှာဖွေနိုင်ပြီး အချို့သောစာကြောင်းကို ပြန်ပေးနိုင်ပါသည်။

ကျွန်ုပ်တို့သွားမည့်နေရာကို အောက်ပါဥပမာကိုကြည့်ပါ “ Dr. ” ကိုရှာပြီး တိုက်ဆိုင်မှုရှိလျှင် “ Doctor ” ပြန်လာပါမည်။

  • အောက်တွင်ဖော်ပြထားသော ရလဒ်ကိုရယူရန် ကုဒ်ဖြစ်ပါသည်၊
6442

  • ကို Run ကုဒ်နှင့် ရလဒ်ကို အောက်တွင် ပြထားသည်

  • သင် လိုအပ်ချက်အရ မက်ခရိုကို ပြင်ဆင်နိုင်သည်။ ဥပမာအနေနဲ့ ပြောချင်တာက“ Prof. ” ကိုရှာရန် string ၏ဆဲလ်တိုင်းတွင် “ Professor ” ကိုရယူပြီး “ ကိုသွားပါ။ Prof. ” “ Dr ” အစား တန်ဖိုးအဖြစ်။ macro ၏ 4th line တွင် နှင့် “ Professor ” အစား “ Doctor ” အစား macro ၏ 5th line တွင် ၎င်းကို သတ်မှတ်သည်။ ဆဲလ်အပိုင်းအခြား နံပါတ်အလိုက်။

၈။ ဆဲလ်တစ်ခုအတွင်း စာကြောင်းရှာဖွေရန် VBA

သင်သည် ဆဲလ်တစ်ခုတည်းရှိ စာကြောင်းတစ်ကြောင်း ကိုလည်း ရှာဖွေနိုင်ပြီး အချို့သောစာကြောင်းကို ပြန်ပေးနိုင်သည်။

  • အောက်ပါကုဒ်ကို မိတ္တူကူးပြီး ကုဒ်ဝင်းဒိုးထဲသို့ ကူးထည့်ပါ။
1298

၎င်းသည် “ Dr. <2 ကိုရှာဖွေလိမ့်မည်။>" တွင် Cell B5 တွင် ၎င်းနှင့်ကိုက်ညီသည်ကိုတွေ့ပါက Cell C5 ရှိ “ Doctor ” သို့ ပြန်ပို့ပေးသည်။

  • သင့်လိုအပ်ချက်အရ မက်ခရိုကို ပြင်ဆင်နိုင်သည်။ ဥပမာအားဖြင့်၊ သင်သည် “ Prof. ” ကို string ၏ဆဲလ်တစ်ခုခုတွင်ရှာလိုပါက၊ “ Professor ” ကိုပြန်ယူလိုပါက၊ ထို့နောက် “ Dr ” အစား တန်ဖိုးအဖြစ် “ Prof. ” ကို ဖြတ်လိုက်ပါ။ macro ၏ 2nd line တွင် macro ၏ 3rd line ရှိ “ Doctor ” အစား “ Professor ” နှင့် ဆဲလ်ကိုးကားမှု နံပါတ်အလိုက်။

နိဂုံးချုပ်

ဤဆောင်းပါးတွင် VBA macro ကို အသုံးပြု၍ Excel တွင် စာကြောင်းအချို့ကို မည်သို့ရှာရမည်နည်း။ ဤဆောင်းပါးသည် သင့်အတွက် အလွန်အကျိုးရှိမည်ဟု မျှော်လင့်ပါသည်။ နှင့်ပတ်သက်သည့် မည်သည့်မေးခွန်းများကိုမဆို လွတ်လပ်စွာမေးမြန်းနိုင်ပါသည်။ခေါင်းစဉ်။

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