زده کړئ چې څنګه په Excel کې دودیز افعال ډیبګ کړئ

  • دا شریک کړه
Michael Brown

لکه څنګه چې تاسو دمخه پوهیږئ چې څنګه UDFs رامینځته کړئ (او زه امید لرم چې تاسو یې په خپل Excel کې هم د پلي کولو هڅه کړې وي) ، راځئ چې یو څه ژور وخورئ او وګورو چې ستاسو د کارونکي ټاکل شوي فعالیت کار نه کوي په صورت کې څه ترسره کیدی شي.

د ګمرک فعالیت رامینځته کولو په وخت کې د ځینې مسلو حل کولو لپاره ، تاسو به ډیری احتمال د ډیبګ چلولو ته اړتیا ولرئ. بیا تاسو ډاډه اوسئ چې فنکشن په سمه توګه کار کوي.

موږ به لاندې د ډیبګ کولو تخنیکونه وپلټو:

    3>0>کله چې تاسو دودیز فنکشن رامینځته کړئ ، تل امکان شتون لري چې تاسو به تېروتنه وکړئ. دودیز فعالیتونه معمولا خورا پیچلي وي. او دوی تل سمدلاسه په سمه توګه کار نه پیل کوي. فورمول کیدای شي ناسمه پایله یا #VALUE بیرته راولي! تېروتنه د معیاري اکسل افعالو برعکس، تاسو به نور پیغامونه ونه ګورئ.

    آیا داسې کومه لاره شته چې د ګمرک فنکشن ګام په ګام لاړ شئ ترڅو وګورئ چې د دې هر بیان څنګه کار کوي؟ ډاډه! د دې لپاره ډیبګ کول کارول کیږي.

    زه به تاسو ته ستاسو د دودیز فعالیت د ډیبګ کولو لپاره څو لارې وړاندیز وکړم ترڅو تاسو وکولی شئ هغه انتخاب غوره کړئ چې ستاسو لپاره کار کوي.

    د مثال په توګه ، موږ دودیز فنکشن کاروو GetMaxBetween زموږ د یوې تیرو مقالو څخه چې د ارزښتونو په ټاکل شوي حد کې اعظمي شمیره محاسبه کوي:

    فنکشن GetMaxBetween(rngCells As Range, MinNum, MaxNum) Dim NumRange As Range Dim vMax Dim arrNums() Dim i د Integer ReDim arrNums(rngCells.Count) په توګه د هرې شمیرې لپاره په rngCells vMax =د NumRange وټاکئ قضیه vMax Case MinNum + 0.01 څخه MaxNum - 0.01 arrNums(i) = vMax i = i + 1 قضیه بله GetMaxBetween = 0 End وټاکئ بل NumRange GetMaxBetween = WorksheetFunction.Max(arrNums> فنکشنونه دي ) د حجرو سلسله چیرې چې شمیرې لیکل شوي ، او همدارنګه د ارزښتونو پورتنۍ او ښکته حد.

    د MsgBox فعالیت په مهمو ځایونو کې ځای په ځای کړئ

    د محاسبې اجرا کولو نظارت کولو لپاره تاسو کولی شئ ښکاره کړئ په سمو ځایونو کې په سکرین کې د خورا مهم متغیرونو ارزښتونه. دا د پاپ اپ ډیالوګ بکسونو په کارولو سره ترسره کیدی شي.

    MsgBox یو ډیالوګ بکس دی چې تاسو یې کاروونکي ته د یو ډول پیغام ښودلو لپاره کارولی شئ.

    د MsgBox ترکیب د نورو VBA دندو ته ورته دی:

    MsgBox(prompt [, buttons] [, title] [, helpfile, context])

    prompt یو اړین دلیل دی. دا هغه پیغام لري چې تاسو یې د ډیالوګ بکس کې ګورئ. دا د انفرادي متغیرونو ارزښتونو ښودلو لپاره هم کارول کیدی شي.

    ټول نور دلیلونه اختیاري دي.

    [ بټن ] - دا ټاکي چې کوم بټنونه او عکسونه دي په MsgBox کې ښودل شوی. د مثال په توګه، که موږ اختیار وکاروو vbOkOnly ، نو یوازې د OK تڼۍ به ښکاره شي. حتی که تاسو دا دلیل له لاسه ورکړی وي، دا تڼۍ په ډیفالټ ډول کارول کیږي.

    [ سرلیک ] - دلته تاسو کولی شئ د پیغام بکس سرلیک مشخص کړئ.

    راځئ چې له دې څخه تیر شو. د تمرین کولو او ډیبګ کولو پیل کولو لپاره کلمې. د ښودلو لپارهپه پیغام کې، لاندې کرښه د GetMaxBetween د کارونکي لخوا ټاکل شوي فنکشن ته د Case Else آپریټر وړاندې کوډ ته اضافه کړئ:

    MsgBox vMax، "Count -" & i

    دلته هغه څه دي چې موږ به یې په پایله کې ترلاسه کړو:

    فنکشن GetMaxBetween(rngCells as Range, MinNum, MaxNum) Dim NumRange د رینج په توګه Dim vMax Dim arrNums() Dim i As Integer ReDim arrNums(rngCells.Count) په rngCells vMax = NumRange کې د هرې شمیرې لپاره قضیه وټاکئ vMax قضیه MinNum + 0.01 څخه MaxNum - 0.01 arrNums(i) = vMax i = i + 1 MsgBox vMax، "شمار -" & i Case Else GetMaxBetween = 0 End وټاکئ بل NumRange GetMaxBetween = WorksheetFunction.Max(arrNums) پای فنکشن

    د ډیالوګ بکس کې د vMax متغیر په کارولو سره، موږ به وګورو چې کوم شمیرې د انتخاب لپاره معیارونه پوره کوي، نو چې موږ کولی شو د دوی ترټولو لوی انتخاب کړو. د بیان سره "شمیر -" & زه د سرلیک بار کې، موږ په ګوته کوو چې څومره شمیرې موږ دمخه د اعظمي ارزښت ټاکلو لپاره غوره کړې. کاونټر به د هر نوي ارزښت سره زیات شي.

    کله چې موږ خپل UDF ترتیب کړو، موږ لاندې فورمول د نیټې حد ته پلي کوو:

    = GetMaxBetween (A1:A6,10,50)

    د Enter تڼۍ وروسته فشار ورکول کیږي، تاسو به یو پیغام وګورئ لکه څنګه چې لاندې سکرین شاټ کې دی:

    دا د A1 په حد کې لومړی نمبر دی: A6 چې معیارونه پوره کوي: له 10 څخه ډیر مګر لږ له 50 څخه.

    وروسته له دې چې تاسو په سمه توګه کلیک وکړئ، د 14 شمیرې سره دویم پیغام څرګندیږي. پاتې شمیرې د انتخاب سره سمون نه لريمعیارونه نو له همدې امله، فنکشن د دوو ارزښتونو څخه تر ټولو لوی وځي او بیرته راګرځوي، 17.

    د MsgBox فنکشن ستاسو د ګمرک فعالیت کې خورا مهم ځایونو کې کارول کیدی شي ترڅو کنټرول کړي چې څنګه ارزښتونه کنټرول کړي. د انفرادي تغیراتو بدلون. د پیغام بکسونه خورا ګټور کیدی شي کله چې تاسو لوی فعالیت او ډیری محاسبه ولرئ. په دې حالت کې، دا به ستاسو لپاره اسانه وي چې معلومه کړئ چې د کوډ په کومه برخه کې تېروتنه رامنځته کیږي.

    د ودریدو نقطې مشخص کړئ او ګام په ګام ترسره کړئ

    تاسو کولی شئ په کوډ کې وقفې اضافه کړئ ستاسو فعالیت چیرې چې د کوډ اجرا کول به ودریږي. نو تاسو کولی شئ د محاسبې پروسه ګام په ګام تعقیب کړئ. په داسې کولو سره، تاسو کولی شئ وګورئ چې د متغیرونو ارزښتونه څنګه بدلیږي.

    د بریک پوائنټ اضافه کولو لپاره، کرسر په هغه لیکه کې ځای په ځای کړئ چې بیان پکې وي چیرې چې تاسو د وقفې لپاره غوره کوئ. بیا ښي کلیک وکړئ او غوره کړئ Debug -> بریک پواینټ بدل کړئ یا یوازې F9 فشار ورکړئ. تاسو کولی شئ د فعالیت کوډ کیڼ اړخ ته د عمودی خړ ساحې په مطلوب ځای کې هم کلیک وکړئ.

    یو سور دایره به ښکاره شي، لکه څنګه چې تاسو په لاندې سکرین شاټ کې لیدلی شئ. د کوډ کرښه چیرې چې محاسبه به ودرول شي په سور کې روښانه شوی.

    اوس، د VBA مدیر کړکۍ به پرانستل شي کله چې فعالیت روان وي. کرسر به په هغه ځای کې ځای پر ځای شي چیرې چې تاسو ودریږئ.

    که تاسو خپل د موږک کرسر د فنکشن کوډ کې د کوم تغیراتو په سر واچوئ، تاسو کولی شئ د دوی اوسنی وګورئارزښت:

    حساب ته دوام ورکولو لپاره F5 فشار ورکړئ.

    یادونه. د وقفې وروسته ، تاسو کولی شئ د ګام په ګام د محاسبې پرمختګ تعقیب کړئ. که تاسو د F8 تڼۍ فشار کړئ، د VBA کوډ یوازې یوه بله کرښه به اجرا شي. د تیر سره ژیړ کرښه به د وروستي اعدام شوي کوډ موقعیت ته هم حرکت وکړي.

    له هغه وخته چې د فنکشن اجرا کول بیا ودرول شوي، تاسو کولی شئ د ماوس کرسر په کارولو سره د فنکشن د ټولو متغیرونو اوسني ارزښتونه وګورئ.

    د F8 راتلونکی فشار به موږ یو ګام مخکې ونیسو. . نو تاسو کولی شئ د محاسبې تر پای پورې F8 فشار ورکړئ. یا F5 فشار ورکړئ ترڅو محاسبې ته تر راتلونکي وقفې پورې دوام ورکړئ.

    که کومه تېروتنه رامنځ ته شي، کرسر به د کوډ په هغه ځای کې ودریږي چیرې چې تېروتنه رامنځته شوې. او تاسو به د پاپ اپ خطا پیغام هم وګورئ. دا د ستونزې د علت معلومول اسانه کوي.

    هغه وقفې چې تاسو یې مشخص کوئ تر هغه پورې به پلي شي تر څو چې تاسو فایل بند نه کړئ. کله چې تاسو یې خلاص کړئ، نو تاسو به یې بیا تنظیم کولو ته اړتیا ولرئ. ترټولو اسانه طریقه نه ده، ایا تاسو فکر نه کوئ؟

    په هرصورت، دا ستونزه حل کیدی شي. په اړینو ټکو کې د فنکشن کوډ کې د Stop بیان داخل کړئ، او تاسو کولی شئ د بریک پواینټ کارولو په څیر د پروګرام اجرا کول ودروئ.

    کله چې VBA د Stop بیان سره مخ شي، دا به د پروګرام اجرا ودروي او ستاسو عمل ته انتظار وکړي. بیا د متغیرونو ارزښتونه چیک کړئد ادامه ورکولو لپاره F5 فشار ورکړئ.

    یا F8 فشار ورکړئ ترڅو ګام په ګام فعالیت ترسره کړئ لکه څنګه چې پورته بیان شوي.

    د Stop بیان د پروګرام برخه ده او له همدې امله ده. ړنګ شوی نه دی، لکه څنګه چې د بریک پوائنټ قضیه ده. کله چې تاسو ډیبګ کول سرته ورسوئ ، دا پخپله لرې کړئ. یا د یوې اقتباس (') سره مخکینۍ کولو سره دا په تبصره کې بدل کړئ.

    د Debug.Print آپریټر په کارولو سره ډیبګ کول

    تاسو کولی شئ Debug.Print په کې ځای په ځای کړئ. د فعالیت کوډ په سم ځای کې. دا د متغیرونو ارزښتونو چک کولو لپاره ګټور دی چې په سایکل ډول بدلیږي.

    تاسو کولی شئ په لاندې سکرین شاټ کې د 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 مدیر کې یو ورته پیغام وګورئ. محاسبه به ودرول شي او د کوډ کرښه به په ژیړ رنګ کې روښانه شي. تاسو کولی شئ په اسانۍ سره وپیژنئ چې چیرته او ولې تېروتنه رامنځته شوې.

    بس. اوس تاسو خپل اډ ان رامینځته کړی ، په Excel کې یې اضافه کړی او تاسو کولی شئ پدې کې UDF وکاروئ. که تاسو غواړئ نور UDFs وکاروئ، یوازې د VBA مدیر کې د اضافې ماډل کې کوډ ولیکئ او خوندي یې کړئ.

    همدا نن ورځ دی. موږ د دودیز افعالونو د ډیبګ کولو مختلفې لارې پوښلې او ستاسو په کاري کتاب کې یې د کارولو څرنګوالی زده کړل. موږ واقعیا امید لرو چې تاسو دا لارښوونې ګټورې ومومئ. که تاسو کومه پوښتنه لرئ، دې مقالې ته په نظرونو کې ولیکئ.

مایکل براون د ټیکنالوژۍ وقف شوی لیوال دی چې د سافټویر وسیلو په کارولو سره د پیچلو پروسو ساده کولو لپاره لیوالتیا لري. د ټیک صنعت کې د یوې لسیزې څخه ډیرې تجربې سره، هغه خپل مهارتونه په مایکروسافټ ایکسل او آؤټ لک کې، او همدارنګه د ګوګل شیټس او اسنادو کې لوړ کړي دي. د مایکل بلاګ د نورو سره د هغه پوهه او تخصص شریکولو ته وقف شوی دی، د تولید او موثریت د ښه کولو لپاره د تعقیب لپاره اسانه لارښوونې او لارښوونې چمتو کوي. که تاسو تجربه لرونکی مسلکي یاست یا پیل کونکی یاست ، د مایکل بلاګ د دې اړین سافټویر وسیلو څخه خورا ډیر ترلاسه کولو لپاره ارزښتناک لیدونه او عملي مشورې وړاندې کوي.