Excel UDF কাম কৰা নাই: সমস্যা আৰু সমাধান

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

এই প্ৰবন্ধত, আমি আপোনাৰ কাৰ্য্যপুস্তিকাসমূহত স্বনিৰ্বাচিত ফলনসমূহ ব্যৱহাৰ কৰাৰ সময়ত আপুনি সন্মুখীন হ'ব পৰা সমস্যাসমূহ চাম। মই আপোনালোকক দেখুৱাবলৈ চেষ্টা কৰিম যে ইয়াৰ কাৰণ কি আৰু ইয়াৰ সমাধান কিমান সহজে কৰিব পাৰি।

আমি কি কথা ক'ম:

    আগতে আমি কি ক... কাষ্টম ফাংচন হ'ল, ইয়াক কেনেকৈ সৃষ্টি আৰু ব্যৱহাৰ কৰিব লাগে। যদি আপুনি অনুভৱ কৰে যে আপুনি আগতে ইউডিএফসমূহৰ মৌলিক জ্ঞান সতেজ কৰিব লাগিব, এটা থমকি ৰওক আৰু মোৰ আগৰ প্ৰবন্ধটো চাওক।

    এক্সেল ইউডিএফে পুনৰ গণনা কৰা নাই কিয়?

    যেতিয়া আপুনি কোনো পৰিৱৰ্তন কৰে আপোনাৰ কাৰ্য্যপুস্তিকা, Excel এ আপোনাৰ তাত থকা প্ৰতিটো সূত্ৰ পুনৰ গণনা নকৰে। ই সেই সূত্ৰসমূহৰ বাবে ফলাফলসমূহ আপডেইট কৰিব যি কেৱল পৰিৱৰ্তিত কোষসমূহৰ সৈতে সংযুক্ত।

    কিন্তু ই প্ৰামাণিক Excel ফলনসমূহৰ সৈতে জড়িত। কাষ্টমবোৰৰ কথা ক’বলৈ গ’লে এক্সেলে ভিবিএ ক’ড বৈধ কৰিব নোৱাৰে আৰু আন কোষ চিনাক্ত কৰিব নোৱাৰে যিয়ে কাষ্টম ফাংচনৰ ফলাফলতো প্ৰভাৱ পেলাব পাৰে। গতিকে, আপোনাৰ স্বনিৰ্বাচিত সূত্ৰ সলনি নহ’বও পাৰে যেতিয়া আপুনি কাৰ্য্যপুস্তিকাত পৰিবৰ্তন কৰে।

    সমস্যাটো সমাধান কৰিবলৈ, আপুনি কেৱল Application.Volatile বিবৃতি ব্যৱহাৰ কৰিব লাগিব। ইয়াক কেনেকৈ প্ৰয়োগ কৰিব লাগে তাৰ ষ্টেপ-বাই-ষ্টেপ নিৰ্দেশনাসমূহ শিকিবলৈ পৰৱৰ্তী অধ্যায়টো চাওক।

    অস্থিৰ বনাম অস্বাভাৱিক কাষ্টম ফাংচনসমূহ

    অবিকল্পিতভাৱে, এক্সেলত স্বনিৰ্বাচিত ফাংচনসমূহ অস্থিৰ নহয়। ইয়াৰ অৰ্থ হ'ল যে UDF পুনৰ গণনা কৰা হয় যদিহে ই উল্লেখ কৰা যিকোনো কোষৰ মান সলনি হয়। কিন্তু যদি কোষবোৰৰ ফৰ্মেট হয়, তেন্তে নামটোৰ...ৱৰ্কশ্বীট, ফাইলৰ নাম সলনি কৰক, তেন্তে UDF ত কোনো পৰিৱৰ্তন নহ’ব।

    শব্দৰ পৰা উদাহৰণলৈ সলনি কৰোঁ আহক। উদাহৰণস্বৰূপে, আপুনি আপোনাৰ কাৰ্য্যপুস্তিকাৰ নাম এটা ঘৰত লিখিব লাগিব। ইয়াৰ বাবে, আপুনি এটা স্বনিৰ্বাচিত ফাংচন সৃষ্টি কৰে:

    ফলন WorkbookName() As String WorkbookName = ThisWorkbook.Name End ফাংচন

    এতিয়া নিম্নলিখিত ক্ষেত্ৰ কল্পনা কৰক। আপুনি ঘৰত স্বনিৰ্বাচিত সূত্ৰ =WorkbookName() লিখিছে আৰু তাত ফাইলৰ নাম পাইছে। কিছু সময়ৰ পাছত, আপুনি ফাইলটোৰ নাম সলনি কৰাৰ সিদ্ধান্ত লৈছিল আৰু ইয়াক বেলেগ নামেৰে সংৰক্ষণ কৰিছিল। কিন্তু আপুনি চেলত থকা মানটো চালে আৰু দেখিব যে ইয়াৰ কোনো পৰিৱৰ্তন হোৱা নাই। এতিয়াও এটা পুৰণি নথিপত্ৰৰ নাম আছে যি আৰু সঠিক নহয়।

    যিহেতু এই ফাংচনত কোনো যুক্তি নাই, ফাংচনটো পুনৰ গণনা কৰা নহয় (যদিও আপুনি কাৰ্য্যপুস্তিকাৰ নাম সলনি কৰে, ইয়াক বন্ধ কৰে, আৰু তাৰ পিছত পুনৰ খোলক it).

    টোকা। আপোনাৰ নথিপত্ৰৰ সকলো ফলন পুনৰ গণনা কৰিবলে, আপুনি Ctrl + Alt + F9 চৰ্টকাট ব্যৱহাৰ কৰিব পাৰে ।

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

    Application.Volatile

    গতিকে, আপোনাৰ ক'ডটো এনেকুৱা হ'ব:

    ফাংচন WorkbookName() String হিচাপে Application.Volatile WorkbookName = ThisWorkbook.Name শেষ ফলন

    এতিয়া আপোনাৰ UDF অস্থিৰ, সেয়েহে ইয়াক স্বয়ংক্ৰিয়ভাৱে পুনৰ গণনা কৰা হ'ব যদি কাৰ্য্যপত্ৰিকাৰ কোনো ঘৰপুনৰ গণনা কৰা হৈছে বা কাৰ্য্যপুস্তিকাত কোনো পৰিবৰ্তন ঘটিছে। আপুনি ফাইলৰ নাম সলনি কৰাৰ লগে লগে, আপুনি সেই আপডেইট তৎক্ষণাত দেখিব।

    টোকা। অনুগ্ৰহ কৰি মনত ৰাখিব যে অত্যধিক অস্থিৰ ফাংচনে আপোনাৰ এক্সেলক লেহেমীয়া কৰিব পাৰে। কাৰণ, বহুতো কাষ্টম ফাংচন আছে যিয়ে জটিল গণনা কৰে আৰু বৃহৎ ডাটা ৰেঞ্জত অহৰহ কাম কৰে।

    সেয়েহে মই অস্থিৰতা কেৱল য'ত ইয়াৰ প্ৰকৃত প্ৰয়োজন হয় তাতহে ব্যৱহাৰ কৰাৰ পৰামৰ্শ দিওঁ।

    কাষ্টম ফাংচন কিয় উপলব্ধ নহয়

    যেতিয়া আপুনি এটা কাষ্টম ফাংচনৰ নামৰ প্ৰথম আখৰবোৰ প্ৰৱেশ কৰে, তেতিয়া ই ওলায় ইনপুট কোষৰ কাষৰ ড্ৰপ-ডাউন তালিকাত, ঠিক প্ৰামাণিক Excel ফাংচনসমূহৰ দৰে।

    কিন্তু, এইটো সদায় নহয়। কি কি ভুলে এই পৰিস্থিতিৰ সৃষ্টি কৰিব পাৰে?

    যদি আপোনাৰ Excel 2003-2007 আছে, তেন্তে UDF কেতিয়াও ড্ৰপডাউন তালিকাত দেখা নাযায়। তাত আপুনি কেৱল ষ্টেণ্ডাৰ্ড ফাংচনহে চাব পাৰিব।

    কিন্তু আপুনি এক্সেলৰ নতুন সংস্কৰণ ব্যৱহাৰ কৰিলেও, ভুলবশতঃ আপুনি আন এটা ভুল কৰিব পাৰে।

    আপুনি দেখিছে, কাষ্টম ফাংচনটো থাকিব লাগিব মডিউলসমূহ নামৰ এটা প্ৰামাণিক VBA মডিউল। যেতিয়া আপুনি ফাংচন ক'ড লিখিবলৈ এটা নতুন মডিউল যোগ কৰে, এটা মডিউল ফোল্ডাৰ স্বয়ংক্ৰিয়ভাৱে সৃষ্টি কৰা হয় য'ত সকলো মডিউল লিখা হয়।

    কিন্তু কেতিয়াবা এনেকুৱাও হয় যে এটা নতুন মডিউল নহয় সৃষ্টি হোৱা। পৰৱৰ্তী স্ক্ৰীণশ্বটত আপুনি দেখিব যে কাষ্টম ফাংচন ক’ডটো “Microsoft Excel Objects” মডিউলত আছেএই কাৰ্য্যপুস্তিকা।

    বিষয়টো হ'ল যে আপুনি এটা কাৰ্য্যপত্ৰিকা বা কাৰ্য্যপুস্তিকাৰ ক'ড এলেকাত এটা স্বনিৰ্বাচিত ফাংচন স্থাপন কৰিব নোৱাৰে। এই ক্ষেত্ৰত ফাংচনটোৱে কাম নকৰে। তদুপৰি ই ফাংচনৰ ড্ৰপডাউন তালিকাত দেখা নাযায়। গতিকে, ক'ড সদায় মডিউল ফোল্ডাৰত থাকিব লাগে।

    Excel কাষ্টম ফাংচন সহায় লিখনী প্ৰদৰ্শিত নহয়

    আন এটা সমস্যা হ'ব পাৰে আপুনি পেষ্ট কৰাৰ সময়ত দেখা ইংগিত এটা কাষ্টম ফাংচন। যদি আপুনি এটা প্ৰামাণিক ফাংচন ব্যৱহাৰ কৰে, আপুনি সদায় ফাংচনৰ বাবে আৰু ইয়াৰ যুক্তিসমূহৰ বাবে এটা সঁজুলি টিপ দেখিব। কিন্তু UDF ৰ কথা কি ক'ব?

    যদি আপোনাৰ বহুতো কাষ্টম ফাংচন আছে, তেন্তে ইয়াৰ প্ৰত্যেকেই কি গণনা কৰে সেয়া মনত ৰখাটো আপোনাৰ বাবে অত্যন্ত কঠিন হ'ব। কোনবোৰ যুক্তি ব্যৱহাৰ কৰিব সেইটো মনত ৰখাটো আৰু কঠিন হ’ব। মই ভাবো যে আপোনাৰ স্বনিৰ্বাচিত কাৰ্য্যসমূহৰ বিৱৰণ এটা সোঁৱৰাই দিয়াটো এটা ভাল ধাৰণা হ’ব।

    ইয়াৰ বাবে, মই Application.MacroOptions পদ্ধতি ব্যৱহাৰ কৰাৰ পৰামৰ্শ দিম। ই আপোনাক কেৱল ফাংচনৰ বিৱৰণ নহয় কিন্তু ইয়াৰ প্ৰতিটো যুক্তিৰ বিৱৰণ ফাংচন উইজাৰ্ড উইণ্ড'ত দেখুৱাবলৈ সহায় কৰিব। আপুনি এই উইন্ডোটো দেখিব যেতিয়া আপুনি সূত্ৰ বাৰত Fx বুটাম ক্লিক কৰে।

    আপোনাৰ UDF সমূহত এনে এটা ইংগিত কেনেকৈ যোগ কৰিব লাগে চাওঁ আহক। আগৰ লেখাটোত আমি GetMaxBetween কাষ্টম ফাংচনটো চাইছিলো। ই ধাৰ্য্য কৰা পৰিসীমাত সৰ্বাধিক সংখ্যা বিচাৰি পায় আৰু তিনিটা যুক্তি লয়: সংখ্যাগত মানসমূহৰ এটা পৰিসীমা, আৰু এটা সৰ্বোচ্চ আৰু সৰ্বনিম্ন মান tosearch for.

    এতিয়া আমি এই কাষ্টম ফাংচনৰ বাবে এটা বিৱৰণ যোগ কৰিম। ইয়াৰ বাবে, Application.MacroOptions আদেশ সৃষ্টি আৰু চলাওক। GetMaxBetween ফলনৰ বাবে, আপুনি নিম্নলিখিত আদেশ চলাব পাৰে:

    Sub RegisterUDF () Dim strFuncName As String 'আপুনি Dim strDescr As String পঞ্জীয়ন কৰিব বিচৰা ফাংচনৰ নাম ' ফাংচনৰ বিৱৰণ 'আপোনাৰ ফাংচনত যুক্তিৰ সংখ্যা strFuncName = "GetMaxBetween" strDescr = "ধাৰ্য্য কৰা পৰিসীমাত সৰ্বাধিক সংখ্যা" strArgs (1) =.' "সংখ্যাগত মানসমূহৰ পৰিসৰ" strArgs (2) = "নিম্ন ব্যৱধান সীমা " strArgs (3) = " ওপৰৰ ব্যৱধান সীমা " Application.MacroOptions Macro: = strFuncName, _ বিৱৰণ: = strDescr, _ ArgumentDescriptions: = strArgs, _ শ্ৰেণী: = " মোৰ স্বনিৰ্বাচিত কাৰ্য্যসমূহ " শেষ উপ

    বা

    উপ পঞ্জীয়নUDF () Application.MacroOptions মেক্ৰ': = "GetMaxBetween" , _ বিৱৰণ: = "ধাৰ্য্য কৰা পৰিসীমাত সৰ্বাধিক সংখ্যা" , _ শ্ৰেণী: = "মোৰ... স্বনিৰ্বাচিত ফলনসমূহ" , _ ArgumentDescriptions: = এৰে (_ "সংখ্যাগত মানসমূহৰ পৰিসৰ" , _ "নিম্ন ব্যৱধান bor der" , _ "উপৰৰ ব্যৱধানৰ সীমা" ) End Sub

    ভেৰিয়েবল str FuncName হৈছে ফাংচনৰ নাম। strDescr - ফাংচনৰ বিৱৰণ। strArgs চলকসমূহত প্ৰতিটো যুক্তিৰ বাবে ইংগিত থাকে।

    আপুনি ভাবিব পাৰে যে চতুৰ্থ যুক্তিটো কিহৰ বাবেএপ্লিকেচন.মেক্ৰ'অপচনসমূহ। এই বৈকল্পিক যুক্তিৰ নাম Category আৰু ই Excel ফাংচনৰ শ্ৰেণীটো সূচায় য'ত আমাৰ কাষ্টম GetMaxBetween () ফাংচনটো স্থাপন কৰা হ'ব। আপুনি ইয়াক বৰ্তমানৰ যিকোনো শ্ৰেণীৰ নামেৰে নাম দিব পাৰে: Math & ; ট্ৰিগ, পৰিসংখ্যা, লজিকেল, ইত্যাদি আপুনি নতুন শ্ৰেণীৰ বাবে এটা নাম ধাৰ্য্য কৰিব পাৰে য'ত আপুনি সৃষ্টি কৰা ফাংচনসমূহ স্থাপন কৰিব। যদি আপুনি শ্ৰেণী যুক্তি ব্যৱহাৰ নকৰে, তেন্তে স্বনিৰ্বাচিত ফাংচনটো স্বয়ংক্ৰিয়ভাৱে “ব্যৱহাৰকাৰী সংজ্ঞায়িত” শ্ৰেণীত ৰখা হ'ব।

    ফাংচন ক'ড মডিউল উইণ্ড'ত পেষ্ট কৰক:

    তাৰ পিছত “Run” বুটামটোত ক্লিক কৰক। আদেশে আপোনাৰ GetMaxBetween() ফলনৰ সৈতে Fx বুটাম ব্যৱহাৰ কৰাৰ বাবে সকলো সংহতি সম্পাদন কৰিব।

    যদি আপুনি <ব্যৱহাৰ কৰি এটা ঘৰত এটা ফলন সন্নিবিষ্ট কৰিবলৈ চেষ্টা কৰে 6>Function সন্নিবিষ্ট কৰক সঁজুলি, আপুনি দেখিব যে আপোনাৰ GetMaxBetween ফাংচন "মোৰ স্বনিৰ্বাচিত কাৰ্য্যসমূহ" শ্ৰেণীত আছে:

    আপুনি কেৱল ঘৰত ফাংচনৰ নাম টাইপ কৰিবলৈ আৰম্ভ কৰিব পাৰে আৰু আপুনি নিৰ্বাচন কৰিবলে ফাংচনসমূহৰ ড্ৰপডাউন তালিকাত আপোনাৰ স্বনিৰ্বাচিত ফাংচন চাব Fx বুটামৰ সৈতে।

    টিপচ্। আপুনি ফাংচন উইজাৰ্ড খোলিবলৈ কি' সংমিশ্ৰণ CRTL + A ব্যৱহাৰ কৰিব পাৰে।

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

    যদি আপুনি এই ইংগিতসমূহৰ লিখনী সলনি কৰিব বিচাৰে, strDescr আৰু strArgs<ৰ মান সলনি কৰক 7> RegisterUDF () ক'ডত চলকসমূহ। তাৰ পিছত RegisterUDF () আদেশ পুনৰায় চলাওক।

    যদি আপুনি কৰা সকলো সংহতি পূৰ্বৱৰ্তী অৱস্থালৈ ঘূৰাই আনিব বিচাৰে আৰু ফাংচনৰ বিৱৰণ পৰিষ্কাৰ কৰিব বিচাৰে, এই ক'ড চলাওক:

    Sub UnregisterUDF () Application.MacroOptions মেক্ৰ': = "GetMaxBetween" , _ বিৱৰণ: = খালী , ArgumentDescriptions: = খালী , শ্ৰেণী: = খালী শেষ উপ

    আপুনি এটা স্বনিৰ্বাচিত ফাংচন প্ৰৱেশ কৰাৰ সময়ত এটা ইংগিত পোৱাৰ আৰু এটা উপায় আছে। ফাংচনৰ নাম দিয়ক আৰু তাৰ পিছত Ctrl + Shift + A টিপক :

    =GetMaxBetween( + Ctrl + Shift + A

    আপুনি ফাংচনৰ সকলো যুক্তিৰ তালিকা চাব:

    দুৰ্ভাগ্যজনকভাৱে, ইয়াত আপুনি ফাংচনৰ বিৱৰণ আৰু ইয়াৰ যুক্তিসমূহ দেখা নাপাব। কিন্তু যদি যুক্তিবোৰৰ নামবোৰ যথেষ্ট তথ্যসমৃদ্ধ হয়, গতিকে সেইবোৰো সহায়ক হ’ব পাৰে। তথাপিও, ই একো নথকাৰ তুলনাত ভাল :)

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

    আশাকৰোঁ, এই নিৰ্দেশনাসমূহে আপোনাক সমস্যা সমাধান কৰাত সহায় কৰিব যেতিয়া আপোনাৰ স্বনিৰ্বাচিত কাৰ্য্যই কাম নকৰে বা নকৰেআপুনি বিচৰা ধৰণে কাম কৰক। যদি কিন্তু, আপোনাৰ UDF এতিয়াও কাম কৰাত ব্যৰ্থ হয়, অনুগ্ৰহ কৰি আপোনাৰ সমস্যাটো মন্তব্য অংশত সঠিকভাৱে বৰ্ণনা কৰক। আমি ইয়াক বিচাৰি উলিয়াবলৈ চেষ্টা কৰিম আৰু আপোনাৰ বাবে সমাধান বিচাৰিম ;)

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