Excel VBA मैक्रो को डीबग कैसे करें जो काम नहीं कर रहा है। एक्सेल वीबीए में अद्भुत उपकरण हैं जो आपको चर में संग्रहीत वर्तमान मूल्य को देखने देते हैं जैसे आप एक समय में एक कोड के माध्यम से कदम रखते हैं। यदि आपके पास एक मैक्रो है जो काम नहीं कर रहा है,
वीडियो देखेंा
- आपके पास एक एक्सेल VBA मैक्रो है जो काम नहीं कर रहा है
- VBA में अद्भुत डिबगिंग टूल हैं
- अपने कोड को चलाने के बजाय, आप F8 का उपयोग करके कोड के माध्यम से कदम बढ़ा सकते हैं
- पीले रंग की रेखा वह रेखा है जिसे वह चलाने वाला है
- उस चर का मान देखने के लिए किसी भी चर पर होवर करें।
- जो हो रहा है उसे देखने के लिए Excel में आगे और पीछे टॉगल करें
वीडियो ट्रांसक्रिप्ट
पॉडकास्ट से एक्सेल सीखें, एपिसोड 2096: VBA मैक्रो का डिबगिंग
अरे, नेटकास्ट में आपका स्वागत है, मैं बिल जेलन हूं। आज का प्रश्न: किसी के पास कुछ कोड थे जो मैंने एक पुराने YouTube वीडियो पर पोस्ट किए थे और उन्होंने एक टिप्पणी पोस्ट की, जिसमें कहा गया था, “आह, यह काम नहीं कर रहा है। यह डुप्लिकेट इनवॉइस को सहेजता नहीं है लेकिन यह कोई त्रुटि नहीं करता है। " मुझे नहीं पता कि कोड में क्या गड़बड़ है। ठीक है, तो आप जानते हैं, देखो, जब आप VBA मैक्रो काम नहीं कर रहे हैं, तो महान उपकरण उपलब्ध हैं। इसलिए हमारे यहां एक बटन है जो कुछ कोड को चलाने वाला है। मैं मैक्रो को असाइन करने जा रहा हूं, इसे SaveInvoice कहा जाता है। मैं संपादन पर क्लिक करूँगा और हम VBA में समाप्त हो जाएंगे। और आम तौर पर जब हम उस बटन को दबाते हैं तो यह इस कोड को चलाने वाला होता है। बाम! जैसे यह सब वास्तव में जल्दी हुआ, लेकिन आप यह नहीं देख सकते कि क्या हो रहा है।
तो डीबग टूल के तहत, मेरी पसंदीदा चीज़ों में से एक यहाँ डीबग स्टेप इन है, जिसे आप देखेंगे शॉर्टकट कुंजी F8 है, और इससे हम एक बार में कोड एक लाइन चला सकते हैं। इसलिए मैंने वहां F8 दबाया और यह है- पीली में लाइन वह लाइन है जिसे निष्पादित करना है। इसलिए अगर मैं F8 दबाता हूं, तो यह उन दो घोषणाओं पर कूद जाता है और अब हम एक ActiveSheet.Copy करने जा रहे हैं। तो यहां वास्तव में सुंदर क्या है, आप जानते हैं, खासकर अगर आपके पास एक बड़ा मॉनिटर है कि पॉडकास्ट खिड़की रास्ता बहुत छोटा है, लेकिन आप क्या कर सकते हैं आप मैक्रो रन देख सकते हैं। तो अभी यह ActiveSheet.Copy करने के बारे में है। अभी मैं पॉडकास्ट 2096 नामक एक कार्यपुस्तिका में हूं। यहां एक कार्यपत्रक है जिसे इनवॉइस कहा जाता है और जब मैं F8 दबाता हूं, तो आप देखेंगे कि मैं अब बुक 2 नामक एक नई कार्यपुस्तिका पर हूं और हमारे पास सिर्फ इनवॉइस है, ठीक है।
और अब हम इस बड़ी, लंबी चीज़ को New FN को सौंपने वाले हैं। F8 दबाएं। अब ठीक है, ऐसा नहीं लग रहा था कि यहाँ पर कुछ भी हुआ क्योंकि यहाँ पर कुछ भी नहीं हुआ। लेकिन यहाँ की खूबसूरत बात यह है कि, मैंने अब उस चर को न्यू FN नाम से कुछ सौंपा है और अगर मैं अपना माउस ले जाऊं और न्यू FN के ऊपर मंडराऊं, तो थोड़ा टूल टिप दिखाई देगा जो मुझे दिखाता है कि न्यू FN में क्या संग्रहीत है। तो यह फ़ाइल नाम को सहेज रहा है, वहाँ फ़ोल्डर है जहाँ वह जाने वाला है। इसे Invoice1234 कहा जाता है क्योंकि इसने F4 से मान लिया और फिर PDF जोड़ा।
ठीक है अब, एक्सेल के बारे में सबसे निराशाजनक चीजों में से एक यह है कि यदि आपकी मेमोरी कम होने लगती है, तो यह टूल टिप दिखाई नहीं देना चाहता है। आप वहाँ मंडराएंगे और कुछ नहीं होगा। कभी-कभी आपको इसे बनाने के लिए यहां क्लिक करना होगा और कभी-कभी यह बिल्कुल दिखाई नहीं देगा। जब यह बिल्कुल दिखाई नहीं देगा, तो हम क्या कर सकते हैं Ctrl + G। Ctrl + G तत्काल विंडो है और फिर हम उपयोग करने जा रहे हैं? जो डीबग.प्रिंट, न्यूएफएन के लिए शॉर्टकट है। तो दूसरे शब्दों में, मुझे बताएं कि न्यू एफएन में क्या है और यह आपको दिखाएगा कि न्यू एफएन में क्या है।
ठीक है अब, हम कोड की इस पंक्ति को चलाने वाले हैं जो एक पीडीएफ बनाएगी। ठीक है, इसलिए मैं F8 दबाऊंगा। ठीक है, और इस बिंदु पर हमारे पास 1234 के साथ एक नया पीडीएफ होना चाहिए और अगर मैं फ़ोल्डर में देखता हूं, तो निश्चित रूप से 11 मई को 6:25 बजे पर्याप्त Inv1234 बस बनाया गया था। बहुत बढ़िया, सही?
ठीक है, अब हम उस बिंदु पर पहुँच रहे हैं जहाँ हमें समस्या हो रही है। ठीक है, इसलिए हम यहां F8 दबाते हैं और यह डुप्लिकेट कॉपी के रूप में दिखाई देता है। ठीक है, कि काम किया। और फिर F8, और हम देख सकते हैं कि न्यू एफएन में क्या है। ठीक है, इसलिए इसमें DupInv1234.pdf है और आप यहां वापस भी आ सकते हैं और प्रिंट न्यूफ़एनएन पर क्लिक करें और फिर आप देखेंगे कि हमने फ़ाइल का नाम बदल दिया है, ठीक है। तो, सब कुछ अच्छा है। और फिर हम बनाना Create PDF को चलाने के लिए F8 दबाते हैं। बहुत बढ़िया! सब कुछ बहुत अच्छा लग रहा है, है ना?
तो हमारी पॉडकास्ट फाइलों पर वापस आएं। ठीक है, लेकिन मेरे पास DupInv1234 नामक कुछ होने के बजाय, मुझे नहीं पता कि Book2 नामक कुछ कैसे। ठीक है, यह सिर्फ एक मिनट पहले बनाया गया था। यह एक है, लेकिन जी! यह गलत नाम लगता है। ठीक है, इसलिए हम वीबीए पर वापस आते हैं और मुझे पता है कि मैंने ठीक उसी तरह न्यू एफएन को सही मूल्य सौंपा है। और देखते हैं कि हम इसे किस रूप में सहेज रहे हैं। हम इसे सहेज रहे हैं एक NewFN1 के रूप में जो खाली है; और जब से यह खाली है इसका मतलब है कि यह फ़ाइल का नाम ले रहा है जो इस मामले में Book2 है क्योंकि मैंने इसकी एक प्रति बनाई थी। और इसे बदल दिया - ओह देखो! इसलिए यहाँ, मैं NewFN को नाम निर्दिष्ट कर रहा था और फिर इस NewFN1 को सहेज रहा था, और अब क्योंकि मैं डिबगिंग और हॉवरिंग कर रहा हूँ - होवरिंग अब तक की सबसे बड़ी बात है। मुझे उम्मीद है कि यह पता लगाने में सक्षम होगा कि क्या हो रहा है।इसलिए मैं वापस आता हूं और NewFN1 को बदलता हूं। अब, यहाँ भयानक बात है। ठीक है, इसलिए पहले से ही मैक्रो में इस लाइन को पारित कर दिया है लेकिन मैं इसे वापस ऊपर खींच सकता हूं और कह सकता हूं, ठीक है, चलो इसे फिर से चलाएं F8। और अब पीडीएफ बनाते हैं। ठीक है, और वहां यह सही नाम के साथ दिखाता है और सब कुछ शांत है।
ठीक है, अब जब मुझे पता है कि मैं कर रहा हूं, तो सब कुछ बहुत अच्छा है। यहां से सब कुछ काम होने वाला है। मैं सिर्फ रन पर क्लिक करता हूं और यह कोड के अंत तक चलेगा। ठीक है, कभी-कभी आपके पास एक लंबा मैक्रो होगा, आप जानते हैं, कोड की सैकड़ों लाइनें जो काम कर रही हैं और फिर एक विशेष भाग जो काम नहीं कर रहा है, ठीक है? इसलिए कुछ अन्य उपकरणों का उल्लेख यहां किया गया था। यदि आपको कोड की एक पूरी गुच्छा पर कूदने और सब कुछ उस बिंदु तक चलाने की आवश्यकता है, तो ठीक है, एक तरीका यह है कि यहां क्लिक करें और एक ब्रेकपॉइंट बनाएं। ठीक है, इसलिए अब जब मैं इसे चलाता हूं, तो यह सब कुछ उस बिंदु तक नीचे चला जाएगा। मैं सिर्फ रन क्लिक कर सकता हूं और यह रुक जाएगा, या यदि आप एक ब्रेकपॉइंट सेट नहीं करना चाहते हैं, तो हम बस यहीं क्लिक करेंगे और डिबग, रन टू कर्सर कहेंगे। चलाने के लिए कर्सर।अब मुझे पता है कि यह यहाँ एक समस्या का कारण होगा क्योंकि इस चालान संख्या को बदलने के लिए कोड, मैंने अभी तक हुक नहीं किया था। तो मैं अभी एक नया चालान नंबर डालूँगा और इसलिए मैं अभी उस पंक्ति पर हूँ। डीबग, रन टू कर्सर जो Ctrl + F8 है। ठीक है, इसलिए अब यह सब कुछ उस बिंदु तक नीचे चला गया और हमारे पास क्या होना चाहिए, हमें यह देखने में सक्षम होना चाहिए कि यह सिर्फ Inv1235 बनाया, ठीक है। और अब यह कोड की इस पंक्ति के बारे में है। मैं बस एक लाइन को चलाने के लिए F8 दबा सकता हूं या बस बाकी तरीके से चला सकता हूं। और हमारे DupInv1235, ठीक है? तो, VBA में यहाँ डिबग उपकरण बहुत बढ़िया हैं। चलो आप एक समय में एक कोड एक लाइन चलाते हैं, अपनी स्क्रीन की व्यवस्था करते हैं ताकि हम दोनों कोड जो चल रहे हैं और कोड के परिणाम बाईं तरफ देख सकें। और आप जानते हैं, उम्मीद है, आप यह पता लगा सकते हैं कि कोड में क्या गलत है।
ठीक है, इसलिए प्रकरण फिर से आना: एक एक्सेल VBA मैक्रो है जो काम नहीं कर रहा है। इसमें अद्भुत डिबगिंग टूल हैं। अपना कोड चलाने के बजाय, आप F8 का उपयोग करके कोड के माध्यम से कदम बढ़ा सकते हैं। पीले रंग की रेखा वह रेखा होती है जो चलने वाली होती है। आप उस चर का मान देखने के लिए चर पर होवर कर सकते हैं, जो हो रहा है उसे देखने के लिए Excel में आगे और पीछे टॉगल करें।
ठीक है, हे, मैं आपको रोकने के लिए धन्यवाद देना चाहता हूं। हम आपको अगली बार एक और नेटकास्ट से देखेंगे।
फ़ाइल डाउनलोड करें
यहाँ नमूना फ़ाइल डाउनलोड करें: पॉडकास्ट 2096.xlsm