Excel ত কাষ্টম ফাংচন কেনেকৈ ডিবাগ কৰিব লাগে শিকিব

  • এইটো শ্বেয়াৰ কৰক
Michael Brown

যিহেতু আপুনি ইতিমধ্যে UDF কেনেকৈ সৃষ্টি কৰিব লাগে জানে (আৰু, মই আশা কৰিছো, আপুনি আপোনাৰ Excel ত প্ৰয়োগ কৰিবলৈও চেষ্টা কৰিছে), আহকচোন অলপ গভীৰভাৱে খন্দা যাওক আৰু চাওঁ যে আপোনাৰ ব্যৱহাৰকাৰী সংজ্ঞায়িত ফাংচনে কাম নকৰাৰ ক্ষেত্ৰত কি কৰিব পাৰি।

এটা স্বনিৰ্বাচিত ফলন সৃষ্টি কৰাৰ সময়ত কিছুমান সমস্যা সমাধান কৰিবলে, আপুনি সম্ভৱতঃ এটা ডিবাগ চলাব লাগিব । তাৰ পিছত আপুনি নিশ্চিত হ'ব পাৰে যে ফাংচনটোৱে সঠিকভাৱে কাম কৰিছে।

আমি নিম্নলিখিত ডিবাগিং কৌশলসমূহ অন্বেষণ কৰিম:

    যেতিয়া আপুনি এটা স্বনিৰ্বাচিত ফাংচন সৃষ্টি কৰে, সদায় এটা সম্ভাৱনা থাকে যে আপুনি ভুল কৰিব। কাষ্টম ফাংচনবোৰ সাধাৰণতে যথেষ্ট জটিল। আৰু তেওঁলোকে সদায় লগে লগে শুদ্ধকৈ কাম কৰিবলৈ আৰম্ভ নকৰে। সূত্ৰটোৱে এটা ভুল ফলাফল বা #VALUE ঘূৰাই দিব পাৰে! আঁসোৱাহ. প্ৰামাণিক এক্সেল ফাংচনৰ দৰে নহয়, আপুনি আন কোনো বাৰ্তা দেখা নাপাব।

    ইয়াৰ প্ৰতিটো বিবৃতি কেনেকৈ কাম কৰে পৰীক্ষা কৰিবলৈ এটা স্বনিৰ্বাচিত ফাংচনৰ মাজেৰে খোজৰ পিছত ধাপ যোৱাৰ উপায় আছেনে? নিশ্চয়! ইয়াৰ বাবে ডিবাগিং ব্যৱহাৰ কৰা হয়।

    মই আপোনাক আপোনাৰ স্বনিৰ্বাচিত ফাংচন ডিবাগ কৰাৰ কেইবাটাও উপায় আগবঢ়াম যাতে আপুনি আপোনাৰ বাবে কাম কৰাটো বাছনি কৰিব পাৰে।

    উদাহৰণস্বৰূপে, আমি স্বনিৰ্বাচিত ফাংচন ব্যৱহাৰ কৰো GetMaxBetween আমাৰ পূৰ্বৰ এটা প্ৰবন্ধৰ পৰা যি মানসমূহৰ ধাৰ্য্য কৰা পৰিসীমাত সৰ্বোচ্চ সংখ্যা গণনা কৰে:

    ফাংচন GetMaxBetween(rngCells As Range, MinNum, MaxNum) Dim NumRange As Range Dim vMax Dim arrNums() Dim i পূৰ্ণসংখ্যা হিচাপে ReDim arrNums(rngCells.Count) rngCells ত প্ৰতিটো NumRange ৰ বাবে vMax =NumRange ক্ষেত্ৰ নিৰ্ব্বাচন কৰক vMax ক্ষেত্ৰ MinNum + 0.01 MaxNum লৈ - 0.01 arrNums(i) = vMax i = i + 1 ক্ষেত্ৰ অন্যথা GetMaxBetween = 0 শেষ পৰৱৰ্তী NumRange নিৰ্বাচন কৰক GetMaxBetween = WorksheetFunction.Max(arrNums) শেষ ফাংচন

    ফাংচন যুক্তিসমূহ হৈছে সংখ্যা লিখা ঘৰসমূহৰ পৰিসীমা, লগতে মানসমূহৰ ওপৰৰ আৰু তলৰ সীমা।

    MsgBox ফলনক গুৰুত্বপূৰ্ণ স্থানত ৰাখক

    গণনাসমূহৰ নিষ্পাদন নিৰীক্ষণ কৰিবলে, আপুনি প্ৰদৰ্শন কৰিব পাৰিব পৰ্দাত আটাইতকৈ গুৰুত্বপূৰ্ণ চলকসমূহৰ মানসমূহ সঠিক ঠাইত। এইটো পপ-আপ সংলাপ বাকচ ব্যৱহাৰ কৰি কৰিব পাৰি।

    MsgBox এটা সংলাপ বাকচ যি আপুনি ব্যৱহাৰকাৰীক কোনো ধৰণৰ বাৰ্তা দেখুৱাবলৈ ব্যৱহাৰ কৰিব পাৰে।

    MsgBox ৰ বাক্যবিন্যাস অন্য VBA ফলনসমূহৰ সৈতে একে:

    MsgBox(প্ৰমপ্ট [, বুটামসমূহ] [, শিৰোনাম] [, হেল্পফাইল, প্ৰসংগ])

    প্ৰমপ্ট এটা প্ৰয়োজনীয় যুক্তি। ইয়াত আপুনি সংলাপ বাকচত দেখা বাৰ্তাটো থাকে। ইয়াক ব্যক্তিগত চলকসমূহৰ মানসমূহ প্ৰদৰ্শন কৰিবলেও ব্যৱহাৰ কৰিব পাৰি।

    অন্য সকলো যুক্তি বৈকল্পিক।

    [ বুটামসমূহ ] - কোনবোৰ বুটাম আৰু আইকনসমূহ নিৰ্ধাৰণ কৰে MsgBox ত প্ৰদৰ্শিত হয়। উদাহৰণস্বৰূপে, যদি আমি vbOkOnly বিকল্প ব্যৱহাৰ কৰো, তেন্তে কেৱল OK বুটাম প্ৰদৰ্শিত হ'ব। যদিও আপুনি এই যুক্তি হেৰুৱাইছে, এই বুটাম অবিকল্পিতভাৱে ব্যৱহাৰ কৰা হয়।

    [ title ] - ইয়াত আপুনি বাৰ্তা বাকচৰ শিৰোনাম ধাৰ্য্য কৰিব পাৰে।

    আহক তাৰ পৰা সলনি কৰোঁ শব্দসমূহ অনুশীলন কৰিবলৈ আৰু ডিবাগিং আৰম্ভ কৰিবলৈ। প্ৰদৰ্শন কৰিবলৈবাৰ্তা, Case Else অপাৰেটৰৰ আগত GetMaxBetween ব্যৱহাৰকাৰী-সংজ্ঞায়িত ফাংচনৰ ক'ডত নিম্নলিখিত শাৰী যোগ কৰক:

    MsgBox vMax,, "Count -" & i

    এইখিনিতে আমি ফলাফলত কি পাম:

    ফাংচন GetMaxBetween(rngCells As Range, MinNum, MaxNum) Dim NumRange As Range Dim vMax Dim arrNums() Dim i As Integer ReDim arrNums(rngCells.Count) rngCells ত প্ৰতিটো NumRange ৰ বাবে vMax = NumRange ক্ষেত্ৰ নিৰ্বাচন কৰক vMax Case MinNum + 0.01 লৈ MaxNum - 0.01 arrNums(i) = vMax i = i + 1 MsgBox vMax,, "গণনা -" & i Case Else GetMaxBetween = 0 End Select Next NumRange GetMaxBetween = WorksheetFunction.Max(arrNums) End Function

    সংলাপ বাকচত vMax চলক ব্যৱহাৰ কৰি, আমি চাম কোনবোৰ সংখ্যাই নিৰ্বাচনৰ বাবে মাপকাঠী পূৰণ কৰে, গতিকে যে আমি ইয়াৰে আটাইতকৈ ডাঙৰটো বাছি ল’ব পাৰো। "গণনা -" অভিব্যক্তিৰে & I শিৰোনাম বাৰত, আমি সৰ্বোচ্চ মান নিৰ্ধাৰণ কৰিবলৈ ইতিমধ্যে কিমান সংখ্যা নিৰ্বাচন কৰিছো তাক সূচাওঁ। প্ৰতিটো নতুন মানৰ লগে লগে কাউণ্টাৰটো বৃদ্ধি কৰা হ'ব।

    এবাৰ আমাৰ UDF ছেট হ'লে আমি তলৰ সূত্ৰটো তাৰিখ পৰিসৰত প্ৰয়োগ কৰো:

    = GetMaxBetween (A1:A6,10,50)

    Enter বুটামৰ পিছত টিপিলে, আপুনি তলৰ স্ক্ৰীণশ্বটৰ দৰে এটা বাৰ্তা দেখিব:

    এইটো A1: A6 পৰিসীমাৰ প্ৰথম সংখ্যা যিয়ে মাপকাঠী পূৰণ কৰে: 10 তকৈ অধিক কিন্তু কম 50 তকৈ।

    আপুনি ঠিক আছে ক্লিক কৰাৰ পিছত, 14 সংখ্যাৰ সৈতে এটা দ্বিতীয় বাৰ্তা ওলায়। বাকী সংখ্যাসমূহ নিৰ্বাচনৰ সৈতে মিল নাথাকেচৰ্ত. গতিকে, ফাংচনটোৱে প্ৰস্থান কৰে আৰু দুটা মানসমূহৰ ভিতৰত আটাইতকৈ ডাঙৰটো ঘূৰাই দিয়ে, 17.

    MsgBox ফাংচনক আপোনাৰ স্বনিৰ্বাচিত ফাংচনৰ আটাইতকৈ গুৰুত্বপূৰ্ণ স্থানত ব্যৱহাৰ কৰিব পাৰি মানসমূহ কেনেকৈ নিয়ন্ত্ৰণ কৰিবলে ব্যক্তিগত চলকসমূহৰ পৰিৱৰ্তন। বাৰ্তা বাকচসমূহ অতি উপযোগী হ'ব পাৰে যেতিয়া আপোনাৰ এটা ডাঙৰ কাৰ্য্য আৰু বহুত গণনা থাকে। এই ক্ষেত্ৰত, ক'ডৰ কোনটো অংশত ভুল ঘটে সেইটো নিৰ্ধাৰণ কৰাটো আপোনাৰ বাবে সহজ হ'ব।

    ষ্টপিং পইণ্ট নিৰ্ধাৰণ কৰক আৰু স্তৰ অনুসৰি কাম কৰক

    আপুনি ৰ ক'ডত ব্ৰেকপইণ্ট যোগ কৰিব পাৰে আপোনাৰ ফাংচন য'ত ক'ড এক্সিকিউচন বন্ধ হ'ব। গতিকে আপুনি গণনা প্ৰক্ৰিয়াটো পদক্ষেপ অনুসৰি অনুসৰণ কৰিব পাৰে। তেনে কৰিলে, আপুনি চলকসমূহৰ মানসমূহ কেনেকৈ সলনি হয় চাব ​​পাৰিব।

    এটা ব্ৰেকপইণ্ট যোগ কৰিবলে, কাৰ্চাৰক বিবৃতিটো থকা শাৰীত ৰাখক য'ত আপুনি বিৰতি কৰিব বাছি লয়। তাৰ পিছত ৰাইট-ক্লিক কৰক আৰু ডিবাগ -> ব্ৰেকপইণ্ট টগল কৰক বা কেৱল 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) দেখিব, যি... সীমা নিৰ্ধাৰণ কৰক আৰু যাৰ ভিতৰত সৰ্বোচ্চ নিৰ্বাচন কৰা হ'ব। ১ আৰু ২ সংখ্যাৰ অৰ্থ হ’ল ফাংচনটোৱে ২টা চক্ৰ সম্পূৰ্ণ কৰিছে য’ত সংখ্যাবোৰ নিৰ্বাচন কৰা হৈছিল। আমি আটাইতকৈ গুৰুত্বপূৰ্ণ চলকসমূহৰ মান দেখিবলৈ পাওঁ, যিদৰে আমি আগতে MsgBox ৰ সৈতে কৰিছিলো। কিন্তু ই ফাংচনটো বন্ধ কৰা নাছিল।

    এটা প্ৰক্ৰিয়াৰ পৰা এটা ফাংচন কল কৰক

    আপুনি এটা ব্যৱহাৰকাৰী সংজ্ঞায়িত ফাংচনক ৱৰ্কশ্বীটৰ এটা কোষৰ পৰা নহয়, কিন্তু এটা প্ৰক্ৰিয়াৰ পৰা কল কৰিব পাৰে। এই ক্ষেত্ৰত, সকলো ভুল ভিজুৱেল বেচিক সম্পাদক উইণ্ড'ত দেখুওৱা হ'ব।

    ইয়াত আপুনি ব্যৱহাৰকাৰী-সংজ্ঞায়িত ফাংচন GetMaxBerween ক কেনেকৈ a ৰ পৰা কল কৰিব পাৰেপদ্ধতি:

    Sub Test() Dim x x = GetMaxBetween(Range ( "A1:A6" ), 10, 50) MsgBox(x) End Sub

    ক'ডৰ যিকোনো ঠাইত কাৰ্চাৰ স্থাপন কৰক আৰু F5 টিপক। যদি ফাংচনত কোনো ভুল নাই, আপুনি গণনাৰ ফলাফলৰ সৈতে এটা পপ-আপ উইণ্ড' দেখিব।

    এটা ভুলৰ ক্ষেত্ৰত, আপুনি VBA সম্পাদকত এটা সংশ্লিষ্ট বাৰ্তা দেখিব। গণনা বন্ধ কৰা হ'ব আৰু ভুলটো সংঘটিত হোৱা ক'ডৰ শাৰীটো হালধীয়া ৰঙেৰে হাইলাইট কৰা হ'ব। আপুনি সহজেই চিনাক্ত কৰিব পাৰে যে ভুলটো ক'ত আৰু কিয় হৈছে।

    এয়াই সকলো। এতিয়া আপুনি আপোনাৰ নিজৰ এড-ইন তৈয়াৰ কৰিছে, ইয়াক এক্সেলত যোগ কৰিছে আৰু আপুনি ইয়াত থকা UDF ব্যৱহাৰ কৰিব পাৰিব। যদি আপুনি অধিক UDF ব্যৱহাৰ কৰিব বিচাৰে, মাত্ৰ VBA সম্পাদকত এড-ইন মডিউলত ক'ড লিখক আৰু সংৰক্ষণ কৰক।

    আজিৰ বাবে সেয়াই। আমি স্বনিৰ্বাচিত ফলনসমূহ ডিবাগ কৰাৰ বিভিন্ন উপায় আলোচনা কৰিছো আৰু আপোনাৰ কাৰ্য্যপুস্তিকাত সিহতক কেনেকৈ ব্যৱহাৰ কৰিব লাগে শিকিছো। আমি সঁচাকৈয়ে আশা কৰিছো যে আপোনালোকে এই নিৰ্দেশনাসমূহ সহায়ক বুলি বিবেচনা কৰিব। যদি আপোনাৰ কিবা প্ৰশ্ন আছে তেন্তে এই লেখাটোৰ মন্তব্যত লিখক।

    মাইকেল ব্ৰাউন এজন নিষ্ঠাবান প্ৰযুক্তি অনুৰাগী আৰু তেওঁৰ চফ্টৱেৰ সঁজুলি ব্যৱহাৰ কৰি জটিল প্ৰক্ৰিয়াসমূহ সৰল কৰাৰ প্ৰতি আকৰ্ষণ আছে। টেক উদ্যোগত এক দশকৰো অধিক অভিজ্ঞতাৰে তেওঁ মাইক্ৰ’ছফ্ট এক্সেল আৰু আউটলুকৰ লগতে গুগল শ্বীট আৰু ডক্সত নিজৰ দক্ষতা বৃদ্ধি কৰিছে। মাইকেলৰ ব্লগটোৱে তেওঁৰ জ্ঞান আৰু বিশেষজ্ঞতা আনৰ সৈতে ভাগ-বতৰা কৰাৰ বাবে উৎসৰ্গিত, উৎপাদনশীলতা আৰু দক্ষতা উন্নত কৰাৰ বাবে সহজে অনুসৰণ কৰিব পৰা টিপছ আৰু টিউটৰিয়েল প্ৰদান কৰে। আপুনি এজন অভিজ্ঞ পেছাদাৰী হওক বা এজন নবীন হওক, মাইকেলৰ ব্লগে এই প্ৰয়োজনীয় চফ্টৱেৰ সঁজুলিসমূহৰ পৰা সৰ্বাধিক লাভ কৰিবলৈ মূল্যৱান অন্তৰ্দৃষ্টি আৰু ব্যৱহাৰিক পৰামৰ্শ আগবঢ়ায়।