မာတိကာ
သင် UDF များကို ဖန်တီးနည်းကို သင်သိပြီးဖြစ်သည့်အတိုင်း (ကျွန်ုပ်မျှော်လင့်သည်မှာ၊ ၎င်းတို့ကို သင်၏ Excel တွင် အသုံးချရန် ကြိုးပမ်းခဲ့သည်)၊ သင့်အသုံးပြုသူသတ်မှတ်ထားသောလုပ်ဆောင်ချက်သည် အလုပ်မလုပ်ပါက မည်သို့လုပ်ဆောင်နိုင်သည်ကို ကြည့်ကြပါစို့။
စိတ်ကြိုက်လုပ်ဆောင်ချက်တစ်ခုကို ဖန်တီးသည့်အခါ အချို့ပြဿနာများကို ဖြေရှင်းရန်အတွက်၊ သင်သည် အမှားရှာပြင်ခြင်းတစ်ခုကို လုပ်ဆောင်ရန် လိုအပ်ပါသည်။ ထို့နောက် လုပ်ဆောင်ချက်သည် မှန်ကန်ကြောင်း သေချာစေနိုင်ပါသည်။
ကျွန်ုပ်တို့သည် အောက်ပါ အမှားရှာပြင်နည်းများကို ရှာဖွေပါမည်-
သင်စိတ်ကြိုက်လုပ်ဆောင်ချက်တစ်ခုကို ဖန်တီးသောအခါတွင် ဖြစ်နိုင်ခြေအမြဲရှိပါသည် မင်းအမှားလုပ်မိလိမ့်မယ်။ စိတ်ကြိုက်လုပ်ဆောင်ချက်များသည် အများအားဖြင့် အတော်လေးရှုပ်ထွေးပါသည်။ ပြီးတော့ သူတို့က အမြဲတမ်း မှန်ကန်စွာ အလုပ်မလုပ်နိုင်တော့ဘူး။ ဖော်မြူလာသည် မှားယွင်းသောရလဒ် သို့မဟုတ် #VALUE ကို ပြန်ပေးနိုင်သည်။ အမှား။ ပုံမှန် Excel လုပ်ဆောင်ချက်များနှင့် မတူဘဲ၊ သင်သည် အခြားမည်သည့်စာများကိုမျှ တွေ့ရမည်မဟုတ်ပါ။
၎င်း၏ထုတ်ပြန်ချက်တစ်ခုစီ၏ အလုပ်လုပ်ပုံကို စစ်ဆေးရန် စိတ်ကြိုက်လုပ်ဆောင်ချက်ကို တစ်ဆင့်ပြီးတစ်ဆင့် ဖြတ်သန်းရန် နည်းလမ်းရှိပါသလား။ ဟုတ်ပါတယ်! ဤအရာအတွက် အမှားရှာပြင်ခြင်းကို အသုံးပြုပါသည်။
သင့်စိတ်ကြိုက်လုပ်ဆောင်ချက်ကို သင်ရွေးချယ်နိုင်စေရန်အတွက် သင့်စိတ်ကြိုက်လုပ်ဆောင်ချက်ကို အမှားရှာရန် နည်းလမ်းများစွာကို ကျွန်ုပ်ပေးပါမည်။
ဥပမာအနေဖြင့် ကျွန်ုပ်တို့သည် စိတ်ကြိုက်လုပ်ဆောင်ချက်ကို အသုံးပြုပါသည်။ GetMaxBetween သည် သတ်မှတ်ထားသော တန်ဖိုးများ၏ အကွာအဝေးအတွင်း အများဆုံး နံပါတ်ကို တွက်ချက်သည့် ကျွန်ုပ်တို့၏ ယခင်ဆောင်းပါးများထဲမှ တစ်ခုမှ-
Function GetMaxBetween(rngCells As Range၊ MinNum၊ MaxNum) Dim NumRange As Range As Range Dim vMax Dim arrNums() Dim i As Integer ReDim arrNums(rngCells.Count) rngCells vMax အတွင်းရှိ NumRange တစ်ခုစီအတွက်NumRange ကိုရွေးချယ်ပါ Case vMax Case MinNum + 0.01 မှ MaxNum - 0.01 arrNums(i) = vMax i = i + 1 Case Else GetMaxBetween = 0 End ရွေးပါ Next NumRange GetMaxBetween = WorksheetFunction.Max(arrNums) End Functionလုပ်ဆောင်ချက်များမှာ ကိန်းဂဏာန်းများကို ရေးမှတ်ထားသည့် ဆဲလ်အကွာအဝေးအပြင် တန်ဖိုးများ၏ အထက်နှင့်အောက် ကန့်သတ်ချက်။
MsgBox လုပ်ဆောင်ချက်ကို အရေးကြီးသောနေရာများတွင် ထားရှိပါ
တွက်ချက်မှုများ လုပ်ဆောင်မှုကို စောင့်ကြည့်ရန်အတွက် သင်ပြသနိုင်သည် မှန်ကန်သောနေရာများတွင် ဖန်သားပြင်ပေါ်ရှိ အရေးကြီးဆုံးကိန်းရှင်များ၏ တန်ဖိုးများ။ ပေါ်လာသော ဒိုင်ယာလော့ခ်ဘောက်စ်များကို အသုံးပြု၍ ၎င်းကို လုပ်ဆောင်နိုင်သည်။
MsgBox သည် သုံးစွဲသူထံသို့ မက်ဆေ့ချ်တစ်မျိုးမျိုး ပြသရန် သင်အသုံးပြုနိုင်သည့် ဒိုင်ယာလော့ခ်ဘောက်စ်တစ်ခုဖြစ်သည်။
MsgBox ၏ အထားအသို အခြား VBA လုပ်ဆောင်ချက်များနှင့် ဆင်တူသည်-
MsgBox(prompt [, buttons] [, title] [, helpfile, context])prompt သည် လိုအပ်သော အကြောင်းပြချက်တစ်ခုဖြစ်သည်။ ၎င်းတွင် ဒိုင်ယာလော့ဘောက်စ်တွင် သင်မြင်ရသည့် မက်ဆေ့ချ်ပါရှိသည်။ ကိန်းရှင်တစ်ခုချင်းစီ၏ တန်ဖိုးများကို ပြသရန်လည်း အသုံးပြုနိုင်သည်။
အခြား အကြောင်းပြချက်များအားလုံးသည် ရွေးချယ်ခွင့်ရှိသည်။
[ ခလုတ်များ ] - မည်သည့်ခလုတ်များနှင့် သင်္ကေတများကို ဆုံးဖြတ်သည် MsgBox တွင် ပြထားသည်။ ဥပမာအားဖြင့်၊ ကျွန်ုပ်တို့သည် ရွေးစရာ vbOkOnly ကို အသုံးပြုပါက၊ OK ခလုတ်ကိုသာ ပြသပါမည်။ ဤအငြင်းအခုံကို လွတ်သွားသော်လည်း၊ ဤခလုတ်ကို မူရင်းအတိုင်း အသုံးပြုပါသည်။
title ] - ဤနေရာတွင် သင်သည် မက်ဆေ့ချ်ဘောက်စ်၏ ခေါင်းစဉ်ကို သတ်မှတ်နိုင်ပါသည်။
မှ ပြောင်းကြပါစို့။ လေ့ကျင့်ရန်နှင့် အမှားရှာစတင်ရန် စကားလုံးများ။ ဖော်ပြရန်မက်ဆေ့ချ်၊ Case Else အော်ပရေတာရှေ့တွင် အသုံးပြုသူသတ်မှတ်ထားသော GetMaxBetween ၏ကုဒ်သို့ အောက်ပါစာကြောင်းကို ပေါင်းထည့်ပါ-
MsgBox vMax,, "Count -" & iဤသည်မှာ ကျွန်ုပ်တို့ရရှိမည့်ရလဒ်ဖြစ်သည်-
Function GetMaxBetween(rngCells As Range, MinNum, MaxNum) Dim NumRange As Range Dim vMax Dim arrNums() Dim i As Integer ReDim arrNums(rngCells.Count) NumRange တစ်ခုစီအတွက် rngCells vMax = NumRange ဖြစ်ရပ်မှန် vMax ကိုရွေးချယ်ပါ MinNum + 0.01 သို့ MaxNum - 0.01 arrNums(i) = vMax i = i + 1 MsgBox vMax, "Count -" & i Case Else GetMaxBetween = 0 End Select Next NumRange GetMaxBetween = WorksheetFunction.Max(arrNums) End Functionဒိုင်ယာလော့ဘောက်စ်ရှိ vMax ကိုအသုံးပြု၍ ရွေးချယ်မှုအတွက် သတ်မှတ်စံနှုန်းများနှင့် ကိုက်ညီသော နံပါတ်များကို ကျွန်ုပ်တို့ တွေ့ရမည်ဖြစ်သည်၊ ထို့ကြောင့်၊ အဲဒီအထဲက အကြီးဆုံးကို ရွေးလို့ရတယ်။ "Count -" ဟူသော စကားရပ်ဖြင့် & ကျွန်ုပ်သည် ခေါင်းစဉ်ဘားတွင်၊ အများဆုံးတန်ဖိုးကို ဆုံးဖြတ်ရန် ကျွန်ုပ်တို့ရွေးချယ်ထားပြီးသော နံပါတ်များကို ညွှန်ပြပါသည်။ တန်ပြန်တန်ဖိုးအသစ်တစ်ခုစီဖြင့် တိုးလာပါမည်။
ကျွန်ုပ်တို့၏ UDF သတ်မှတ်ပြီးသည်နှင့်၊ ကျွန်ုပ်တို့သည် အောက်ပါဖော်မြူလာကို ရက်စွဲအပိုင်းအခြားသို့ အသုံးချသည်-
= GetMaxBetween (A1:A6,10,50)
ထည့်သွင်းရန် ခလုတ်ပြီးနောက် နှိပ်လိုက်သည်၊ အောက်ပါ ဖန်သားပြင်ဓာတ်ပုံတွင် ကဲ့သို့ မက်ဆေ့ချ်ကို တွေ့ရလိမ့်မည်-
သတ်မှတ်ချက်များနှင့် ကိုက်ညီသည့် A1 ၏ ပထမဆုံးနံပါတ်ဖြစ်သည်- A6 ဖြစ်သည်- 10 ထက် ကြီးသော်လည်း လျော့နည်းသည် 50 ထက်။
သင် OK ကိုနှိပ်ပြီးနောက်၊ နံပါတ် 14 နှင့် ဒုတိယမက်ဆေ့ချ်တစ်ခု ပေါ်လာပါသည်။ ကျန်နံပါတ်များသည် ရွေးချယ်မှုနှင့် မကိုက်ညီပါ။သတ်မှတ်ချက် ထို့ကြောင့်၊ လုပ်ဆောင်ချက်သည် ထွက်ပြီး တန်ဖိုးနှစ်ခု၏ အကြီးဆုံးကို ပြန်ပေးသည်၊ 17.
MsgBox လုပ်ဆောင်ချက်သည် တန်ဖိုးများကို မည်သို့ထိန်းချုပ်ရန်အတွက် သင့်စိတ်ကြိုက်လုပ်ဆောင်ချက်ရှိ အရေးကြီးဆုံးနေရာများတွင် အသုံးပြုနိုင်သည်။ တစ်ဦးချင်းစီ variable များ၏ပြောင်းလဲမှု။ သင့်တွင် ကြီးမားသောလုပ်ဆောင်ချက်နှင့် တွက်ချက်မှုများစွာရှိသည့်အခါ မက်ဆေ့ချ်ဘောက်စ်များသည် အလွန်အသုံးဝင်ပါသည်။ ဤအခြေအနေတွင်၊ ကုဒ်၏ မည်သည့်အစိတ်အပိုင်းတွင် အမှားအယွင်းဖြစ်ပေါ်သည်ကို ဆုံးဖြတ်ရန် သင့်အတွက် လွယ်ကူသွားပါမည်။
ရပ်တန့်ထားသောမှတ်များကို သတ်မှတ်ပြီး အဆင့်ဆင့်လုပ်ဆောင်ပါ
ကုဒ်၏ breakpoints များကို သင်ထည့်နိုင်သည်။ code execution ရပ်တန့်သွားမည့် သင်၏လုပ်ဆောင်ချက်။ ဒါကြောင့် တွက်ချက်မှု လုပ်ငန်းစဉ်ကို တစ်ဆင့်ပြီးတစ်ဆင့် လုပ်ဆောင်နိုင်ပါတယ်။ ထိုသို့လုပ်ဆောင်ရာတွင်၊ ကိန်းရှင်များ၏တန်ဖိုးများ မည်သို့ပြောင်းလဲသွားသည်ကို သင်တွေ့မြင်နိုင်ပါသည်။
အခွဲတစ်ခုထည့်ရန်၊ သင်ခေတ္တရပ်ရန် ရွေးချယ်သည့်ဖော်ပြချက်ပါရှိသော စာကြောင်းပေါ်တွင် ကာဆာကို ချထားပါ။ ထို့နောက် right-click နှိပ်ပြီး Debug -> Breakpoint ကိုပြောင်းပါ သို့မဟုတ် F9 ကိုနှိပ်ရုံပါပဲ။ လုပ်ဆောင်ချက်ကုဒ်၏ဘယ်ဘက်ရှိ ဒေါင်လိုက်မီးခိုးရောင်ဧရိယာရှိ လိုချင်သောနေရာကို နှိပ်နိုင်သည်။
အောက်ပါ screenshot တွင် သင်မြင်ရသည့်အတိုင်း အနီရောင်စက်ဝိုင်းတစ်ခု ပေါ်လာပါမည်။ တွက်ချက်မှုကို ရပ်တန့်မည့် ကုဒ်မျဉ်းအား အနီရောင်ဖြင့် မီးမောင်းထိုးပြထားသည်။
ယခု လုပ်ဆောင်ချက်ကို လုပ်ဆောင်နေချိန်တွင် VBA တည်းဖြတ်ဝင်းဒိုးကို ဖွင့်ပါမည်။ ကာဆာကို သင်ရပ်လိုက်သည့် နေရာတွင် နေရာချထားမည်ဖြစ်သည်။
သင့်မောက်စ်ကာဆာကို လုပ်ဆောင်ချက်ကုဒ်ရှိ ကိန်းရှင်များထဲမှ တစ်ခုခုပေါ်တွင် ရွှေ့ထားလျှင် ၎င်းတို့၏ လက်ရှိကို သင်မြင်နိုင်သည်တန်ဖိုး-
တွက်ချက်မှုကို ဆက်လက်လုပ်ဆောင်ရန် F5 ကို နှိပ်ပါ။
မှတ်ချက်။ ခွဲမှတ်ပြီးနောက်၊ တွက်ချက်မှုများ၏တိုးတက်မှုကို တစ်ဆင့်ပြီးတစ်ဆင့် စတင်ခြေရာခံနိုင်သည်။ F8 ခလုတ်ကို နှိပ်ပါက VBA ကုဒ်၏ နောက်စာကြောင်းတစ်ကြောင်းသာ လုပ်ဆောင်ပါမည်။ မြှားတစ်ခုပါရှိသော အဝါရောင်မျဉ်းသည် နောက်ဆုံးလုပ်ဆောင်ခဲ့သည့် ကုဒ်အနေအထားသို့လည်း ရွှေ့သွားမည်ဖြစ်သည်။
လုပ်ဆောင်ချက်ကို ခေတ္တရပ်လိုက်ပြန်ပြီဖြစ်သောကြောင့်၊ မောက်စ်ကာဆာကို အသုံးပြု၍ လုပ်ဆောင်ချက်၏ လက်ရှိတန်ဖိုးများကို သင်ကြည့်ရှုနိုင်ပါသည်။
F8 ၏နောက်တစ်ကြိမ်နှိပ်ခြင်းသည် ကျွန်ုပ်တို့ကို ရှေ့တစ်လှမ်းတိုးစေမည်ဖြစ်သည်။ . ဒါကြောင့် တွက်ချက်မှုအဆုံးအထိ F8 ကို နှိပ်နိုင်ပါတယ်။ သို့မဟုတ် နောက်ထွက်မှတ်အထိ တွက်ချက်မှုကို ဆက်လက်လုပ်ဆောင်ရန် F5 ကိုနှိပ်ပါ။
အမှားအယွင်းတစ်ခုဖြစ်ပွားပါက၊ အမှားဖြစ်ပွားသည့်ကုဒ်ရှိ အမှတ်တွင် ကာဆာသည် ရပ်တန့်သွားမည်ဖြစ်သည်။ ပြီးတော့ pop-up error message ကိုလည်းတွေ့ရမှာပါ။ ၎င်းသည် ပြဿနာ၏အကြောင်းရင်းကို ဆုံးဖြတ်ရန် လွယ်ကူစေသည်။
ဖိုင်ကို သင်မပိတ်မချင်း သင်သတ်မှတ်ထားသော ခွဲထွက်မှတ်များကို အသုံးပြုမည်ဖြစ်သည်။ သင်ပြန်ဖွင့်သောအခါ၊ ၎င်းတို့ကို ထပ်မံသတ်မှတ်ရန် လိုအပ်မည်ဖြစ်သည်။ အလွယ်ကူဆုံးနည်းလမ်းမဟုတ်ဟု သင်ထင်ပါသလား။
သို့သော် ဤပြဿနာကို ဖြေရှင်းနိုင်ပါသည်။ လိုအပ်သောအချက်များတွင် လုပ်ဆောင်ချက်ကုဒ်ကို Stop ကြေညာချက်ကို ထည့်သွင်းပြီး breakpoints ကိုအသုံးပြုသည့်အခါကဲ့သို့ ပရိုဂရမ်လုပ်ဆောင်မှုကို ရပ်တန့်နိုင်သည်။
VBA သည် Stop ထုတ်ပြန်ချက်တစ်ခုနှင့် ကြုံတွေ့ရသောအခါ၊ ၎င်းသည် ပရိုဂရမ်လုပ်ဆောင်မှုကို ရပ်တန့်စေပြီး သင်၏လုပ်ဆောင်မှုကို စောင့်ဆိုင်းမည်ဖြစ်သည်။ ထို့နောက် variables များ၏တန်ဖိုးများကိုစစ်ဆေးပါ။ဆက်လုပ်ရန် F5 ကိုနှိပ်ပါ။
သို့မဟုတ် F8 ကိုနှိပ်ပါ သို့မဟုတ် အထက်တွင်ဖော်ပြထားသည့်အတိုင်း လုပ်ဆောင်ချက်များကို အဆင့်ဆင့်ဖြည့်ဆည်းရန်။
Stop ထုတ်ပြန်ချက်သည် ပရိုဂရမ်၏အစိတ်အပိုင်းဖြစ်သောကြောင့်၊ breakpoint ကဲ့သို့ပင် မဖျက်ပါ။ အမှားရှာပြင်ခြင်းပြီးသောအခါ၊ ၎င်းကို ကိုယ်တိုင်ဖယ်ရှားပါ။ သို့မဟုတ် ကိုးကားချက် (') တစ်ခုတည်းဖြင့် ရှေ့တွင် မှတ်ချက်တစ်ခုအဖြစ်သို့ ပြောင်းလဲပါ။
Debug.Print အော်ပရေတာအား အသုံးပြု၍ အမှားရှာပြင်ခြင်း
Debug.Print တွင် သင်ထည့်နိုင်သည်။ function ကုဒ်ကို နေရာမှန်မှာထားပါ။ စက်ဝန်းပြောင်းလဲနေသော variable များ၏တန်ဖိုးများကို စစ်ဆေးခြင်းအတွက် ၎င်းသည် အသုံးဝင်ပါသည်။
အောက်ပါ screenshot တွင် Debug.Print ၏ စွမ်းဆောင်ရည် နမူနာကို သင်တွေ့နိုင်ပါသည်။
ထုတ်ပြန်ချက် Debug.Print i၊ vMax သည် တန်ဖိုးများနှင့် ၎င်းတို့၏ ပုံမှန်နံပါတ်များကို ပရင့်ထုတ်ပါသည်။
ချက်ချင်းဝင်းဒိုးတွင် သင်ရွေးချယ်ထားသော အပိုင်းအခြားမှ နံပါတ်နှစ်ခု (17 နှင့် 14) ကို တွေ့ရသည်၊၊ ကန့်သတ်ချက်များသတ်မှတ်ပြီး အများဆုံးရွေးချယ်မည်ဖြစ်သည်။ ဂဏန်းများ 1 နှင့် 2 သည် ကိန်းဂဏာန်းများကို ရွေးချယ်ထားသည့် လည်ပတ်မှု 2 ပတ်ကို ပြီးမြောက်ကြောင်း ဆိုလိုသည်။ MsgBox ဖြင့် အစောပိုင်းက ပြုလုပ်ခဲ့သည့်အတိုင်း အရေးကြီးဆုံးသော ကိန်းရှင်များ၏ တန်ဖိုးများကို ကျွန်ုပ်တို့ မြင်တွေ့ရသည်။ သို့သော် ၎င်းသည် လုပ်ဆောင်ချက်ကို မရပ်တန့်ခဲ့ပါ။
လုပ်ငန်းစဉ်တစ်ခုမှ လုပ်ဆောင်ချက်တစ်ခုကို ခေါ်ဆိုပါ
သင်သည် အသုံးပြုသူသတ်မှတ်ထားသောလုပ်ဆောင်ချက်ကို အလုပ်စာရွက်ရှိဆဲလ်တစ်ခုမှမဟုတ်ဘဲ လုပ်ထုံးလုပ်နည်းတစ်ခုမှ ခေါ်ဆိုနိုင်သည်။ ဤကိစ္စတွင်၊ အမှားအယွင်းအားလုံးကို Visual Basic Editor ဝင်းဒိုးတွင် ပြသပါမည်။
ဤသည်မှာ အသုံးပြုသူသတ်မှတ်ထားသော လုပ်ဆောင်ချက် GetMaxBerween ကို သင်မည်ကဲ့သို့ခေါ်ဆိုနိုင်သည်လုပ်ထုံးလုပ်နည်း-
Sub Test() Dim x x = GetMaxBetween(Range ( "A1:A6" ), 10, 50) MsgBox(x) End Subကုဒ်၏ မည်သည့်နေရာတွင်မဆို ကာဆာကို နေရာချပြီး F5 ကို နှိပ်ပါ။ လုပ်ဆောင်ချက်တွင် အမှားအယွင်းမရှိပါက၊ တွက်ချက်မှုရလဒ်နှင့်အတူ ပေါ်လာသည့်ဝင်းဒိုးကို သင်တွေ့ရပါမည်။
အမှားအယွင်းရှိပါက၊ VBA တည်းဖြတ်မှုတွင် သက်ဆိုင်သော မက်ဆေ့ချ်ကို သင်တွေ့ရပါမည်။ တွက်ချက်မှု ရပ်သွားမည်ဖြစ်ပြီး အမှားဖြစ်သွားသည့် ကုဒ်လိုင်းကို အဝါရောင်ဖြင့် မီးမောင်းထိုးပြပါမည်။ အမှားအယွင်းဖြစ်ပွားသည့်နေရာနှင့် အကြောင်းရင်းကို သင်သည် အလွယ်တကူသိရှိနိုင်သည်။
ဒါပါပဲ။ ယခု သင်သည် သင်၏ကိုယ်ပိုင် add-in ကိုဖန်တီးပြီး Excel တွင်ထည့်သွင်းပြီး ၎င်းတွင် UDF ကိုသင်အသုံးပြုနိုင်ပြီဖြစ်သည်။ UDFs များကို ပိုမိုအသုံးပြုလိုပါက VBA တည်းဖြတ်သူရှိ ပေါင်းထည့်မှု module တွင် ကုဒ်ကိုရေးပြီး သိမ်းဆည်းလိုက်ပါ။
ဒါက ဒီနေ့အတွက်ပါ။ ကျွန်ုပ်တို့သည် စိတ်ကြိုက်လုပ်ဆောင်ချက်များကို အမှားရှာရန် အမျိုးမျိုးသောနည်းလမ်းများကို ခြုံငုံပြီး သင့်အလုပ်စာအုပ်တွင် ၎င်းတို့ကို အသုံးပြုနည်းကို လေ့လာခဲ့သည်။ ဤလမ်းညွှန်ချက်များသည် သင့်အတွက် အထောက်အကူဖြစ်မည်ဟု ကျွန်ုပ်တို့ အမှန်တကယ် မျှော်လင့်ပါသည်။ သင့်တွင် မေးခွန်းများရှိပါက၊ ဤဆောင်းပါးကို မှတ်ချက်များတွင် ရေးပါ။