एक्सेल VBA ऐप संदेश के साथ अनायास बंद हो जाता है "कोड निष्पादन रोक दिया गया है"


151

मैं वेब पर जो देख सकता हूं, यह काफी सामान्य शिकायत है, लेकिन उत्तर दुर्लभ प्रतीत होते हैं। समस्या यह है:

हमारे पास कई एक्सेल वीबीए ऐप हैं जो कई उपयोगकर्ताओं की मशीनों पर पूरी तरह से काम करते हैं। हालाँकि एक मशीन पर वे कोड की कुछ लाइनों पर रुक जाते हैं। यह हमेशा समान रेखाएँ होती हैं, लेकिन उन रेखाओं में एक दूसरे के साथ कुछ भी नहीं होता है।

यदि आप रुकने के बाद F5 (रन) दबाते हैं, तो ऐप जारी रहता है, इसलिए यह लगभग ऐसा है जैसे ब्रेक पॉइंट जोड़ा गया है। हमने मेनू से 'सभी ब्रेक को हटाने' का चयन करने की कोशिश की है और यहां तक ​​कि ब्रेक जोड़कर इसे फिर से हटा दिया है।

हमने पहले एकल ऐप्स के साथ यह समस्या की है और हमने मॉड्यूल से कोड काटकर, संकलन करके और फिर इसे वापस चिपकाने आदि द्वारा इसे 'चकमा' दिया है।

समस्या अब एकल .xls के बजाय एक्सेल से संबंधित है, इसलिए हम थोड़ा अनिश्चित हैं कि इसे कैसे प्रबंधित किया जाए।

किसी भी तरह की सहायता कृतज्ञतापूर्वक स्वीकार की जाएगी :)

धन्यवाद,

फिलिप व्हिटिंगटन


2
क्या उपयोगकर्ता किसी भी प्रसंस्करण के बीच में बच रहा है? या कोई अन्य ऐप जो एस्केप कुंजी भेज रहा है?
shahkalpesh

1
सभी विराम बिंदुओं को चुनने के बाद क्या आपने VBA प्रोजेक्ट को फिर से बनाया और सहेजा? मैंने वर्ड वीबीए के भीतर एक संबंधित समस्या देखी है जहां पहले हटाए गए ब्रेकप्वाइंट अभी भी एक ब्रेक का कारण बन रहे हैं।
डिर्क वोल्मार

निष्पादन के दौरान कुछ भी संसाधित नहीं किया जा रहा है, शाहकलेश। डिवो - धन्यवाद, मैंने उन्हें उस क्रम में ठीक से कोशिश नहीं की होगी। अब ऐसा करेंगे ...
फिल व्हिटिंगटन

डिवो की टिप्पणी के अलावा, यह प्रासंगिक लाइनों और डिबग को रोकने वाली किसी भी रेखा के बारे में टिप्पणी करने के लिए उपयोगी हो सकता है, फिर उन्हें असम्बद्ध किया जा सकता है और कोड को फिर से पुन: व्यवस्थित किया जा सकता है (फिर से)।
फियोनुला

और मैं उल्लेख करना भूल गया: वास्तव में एक पुनर्निर्माण को ट्रिगर करने के लिए, एक पंक्ति को संशोधित करने के लिए सामान्य रूप से आवश्यक होता है, और फिर स्रोत कोड को संशोधित करने के लिए कर्सर को अगली पंक्ति में स्थानांतरित करें (उदाहरण के लिए, एक बदलाव करें, कर्सर को नीचे ले जाएं) कर्सर ऊपर और मैन्युअल रूप से परिवर्तन पूर्ववत करें)
डिर्क वोल्मार

जवाबों:


404

मुझे एक दूसरा समाधान मिला है।

  1. पॉपअप में "डीबग" बटन दबाएं।
  2. दो बार Ctrl+ दबाएँ Pause|Break
  3. जारी रखने के लिए प्ले बटन दबाएं।
  4. फ़ाइल को पूरा करने के बाद सहेजें।

आशा है कि यह किसी की मदद करता है।


12
+1: वाह, इस पोस्ट ने मुझे दर्द की दुनिया से बचाया। एक विचित्र समस्या के लिए एक बहुत ही अप्रत्याशित समाधान। दो बार [Ctrl + ब्रेक] दबाने और जारी रखने के बाद, मैंने फ़ाइल को सहेजा। उसके बाद, समस्या अब दिखाई नहीं दी जब मैंने बंद किया और फ़ाइल को फिर से खोला।
डेबनहम

28
यदि कभी कोई उत्तर उत्थान के योग्य है, तो यह बात है। बहुत बढ़िया जवाब।
45वर्मन

4
इसने मेरी बहुत मदद की। यह उत्तर 1000 उत्थान के योग्य है। मैं इस समस्या से पिछले 4-5 दिनों से त्रस्त था। यह पूरी तरह से काम किया।
demouser123

25
क्या किसी को पता है कि यह क्यों काम करता है? या यह कहां से आता है? क्या यह जादू है?
ZX9

4
अभी भी 2017 में मेरी मदद कर रहा है। धन्यवाद!
स्लैब

16

यह समस्या Office / Windows के भीतर एक अजीब विचित्रता से आती है।

VBA कोड के एक ही टुकड़े को विकसित करने और पिछले कुछ दिनों में इसे सैकड़ों बार (शाब्दिक रूप से) चलाने के बाद मैं अभी इस समस्या में भाग गया। केवल एक चीज जो भिन्न है वह यह है कि इस विकराल समस्या का सामना करने से ठीक पहले मैंने गलती से एक अपरंपरागत विधि से VBA कोड के निष्पादन को समाप्त कर दिया था।

मैंने सभी अस्थायी फ़ाइलों को साफ किया, रिबूट किया, आदि ... जब मैंने इस सभी के बाद फिर से कोड चलाया तो मुझे अभी भी मुद्दा मिला - इससे पहले कि मैं पहले लूप में प्रवेश करूँ। यह समझ में आता है कि पॉपअप में "डिबग" बटन दबाएं, फिर दो बार [Ctrl + ब्रेक] दबाएं और इसके बाद बिना रुके जारी रह सकते हैं " क्योंकि ऑफिस / विंडोज के संयोजन में कुछ ने निष्पादन जारी नहीं किया है। यह अटक गया है।

निरर्थक Ctrl + विराम क्रिया संभवतः सुस्त निष्पादन को हल करती है।


14

एक समाधान यहाँ है :

इस समस्या का समाधान आपके मैक्रो की पहली पंक्ति में कोड "Application.EnableCancelKey = xlDisabled" की लाइन को जोड़ना है। यह समस्या को ठीक करेगा और आप त्रुटि संदेश प्राप्त किए बिना मैक्रो को सफलतापूर्वक निष्पादित करने में सक्षम होंगे "कोड निष्पादन बाधित हो गया है ”।

लेकिन, जब मैंने इस लाइन को कोड डाला, तो मैं Ctrl + ब्रेक का उपयोग करने में सक्षम नहीं था। तो यह काम करता है लेकिन बहुत नहीं।


धन्यवाद, स्टेन - यह निश्चित रूप से एक समाधान है यदि आप समय के दबाव में हैं और बस इसे चलाना चाहते हैं! बहुत उपयोगी।
फिल व्हिटिंगटन

1
आप इसे उसी सेटिंग में पुन: सक्षम कर सकते हैं, जिस पर इसे सेट करके xlInterrupt। (जब कोड निष्पादन समाप्त हो जाता है तो यह स्वचालित रूप से पुन: सक्षम हो जाता है।) आपके अन्य उत्तर ने मेरे लिए काम किया, लेकिन सबसे खराब स्थिति यह एक अस्थायी फिक्स के रूप में इस्तेमाल की जा सकती है। Application.EnableCancelKey
कोडिथिक

2
सही उत्तर - और एकमात्र सही उत्तर - ऊपर है। "Application.EnableCancelKey = xlDisabled" सहित कोड की किसी भी लाइन को सम्मिलित करना , समस्या को दूसरी पंक्ति में स्थानांतरित करता है। अक्सर, नया 'ब्रेकपॉइंट' आपके द्वारा डाली गई लाइन है। केवल एक कारण यह है कि मैं आपके उत्तर को अस्वीकार नहीं कर रहा हूं, मैंने पिछले एक दशक में, बार-बार, स्वयं इसका उपयोग करने का सहारा लिया है।
निगेल हेफ़रनन

6

मैं ctrl + ब्रेक मारते पाया जबकि मैक्रो समस्या को ठीक नहीं कर रहा था।


3

मैं सामान्य उपचारात्मक चीजों की कोशिश करूंगा: - अपने VBA कोड पर Rob Bovey का VBA कोड क्लीनर चलाएं - उपयोगकर्ताओं PC, विशेष रूप से COM और .NET एडिंस पर सभी एडिंस को हटा दें - सभी उपयोगकर्ताओं को हटा दें .EXD फाइलें (MSoft अपडेट असंगतताएं) - Excel चलाएं। उपयोगकर्ता प्रणाली पर पता लगाएँ और मरम्मत करें - उपयोगकर्ता के आकार की जाँच करें। xlb फ़ाइल (20-30K होनी चाहिए) - रिबूट करें फिर सभी उपयोगकर्ताओं को हटाएँ अस्थायी फ़ाइलें


2

आप सभी को आपके योगदान के लिए धन्यवाद। कंट्रोल पैनल में REPAIR को चुनने से यह समस्या हल हो गई। मुझे लगता है कि यह स्पष्ट रूप से कार्यालय के कुछ देशी COM घटकों को फिर से पंजीकृत करता है और ऐसा सामान करता है जो REINSTALL नहीं करता है। मुझे उम्मीद है कि उत्तरार्द्ध सिर्फ एक चेकलिस्ट के माध्यम से जाता है और कभी-कभी स्वीकार करता है कि क्या है अगर यह पहले से ही स्थापित है, हो सकता है। फिर मैंने उपयोगकर्ता की मशीन पर COM इंटरोप के लिए अपना स्वयं का .NET dll पंजीकृत करने के साथ एक अलग मुद्दा था (इसके बावजूद अन्य मशीनों पर भी काम कर रहा था) हालांकि मुझे लगता है कि यह Microsoft के बजाय मेरी त्रुटि थी। फिर से धन्यवाद, मैं वास्तव में इसकी सराहना करता हूं।


2

मैं एक जटिल एक्सेल वीबीए ऐप के विकास के दौरान इस मुद्दे पर आया हूं। कभी-कभी एक्सेल ने VBA ऑब्जेक्ट को काफी बेतरतीब ढंग से तोड़ना शुरू कर दिया। और एकमात्र उपाय मशीन को रिबूट करना था। रिबूट के बाद, एक्सेल ने आमतौर पर सामान्य रूप से कार्य करना शुरू कर दिया।

जल्द ही मुझे पता चला है कि मैक्रो नहीं चल रहा है जब एक बार CTRL + ब्रेक मारने के लिए इस मुद्दे का संभावित समाधान है। शायद इससे आपको भी मदद मिल सकती है।


2

मुझे यह समस्या 2007 में फोबार.xlsm (मैक्रो इनेबल्ड) वर्कबुक के साथ एक्सेल का उपयोग करने में भी हुई है, जिसे "मैक एक्जीक्यूशन को बाधित किया गया है", बस दायें कोने में लाल X पर वर्कबुक को बंद करने की कोशिश कर रहा है, जिसमें कोई मैकबुक नहीं चल रहा है सभी, या किसी भी "इनिशियलाइज़" फॉर्म, वर्कबुक या वर्कशीट मैक्रोज़ या तो। मुझे जो विकल्प मिले वे "एंड" या "कंटिन्यू" थे, डिबग को हमेशा बाहर रखा गया था। मैंने एक पिछले पोस्टर के रूप में नियंत्रण कक्ष-> कार्यक्रम और सुविधाएँ-> "Microsoft Office Proffesional 2007" (मेरे मामले में) पर क्लिक करने का सुझाव दिया -> परिवर्तन-> मरम्मत।

इससे मेरे लिए समस्या का समाधान हो गया। मैं इसे एमएस अपडेट के तुरंत बाद जोड़ सकता हूं और मुझे माइक्रोसॉफ्ट से "टीम फाउंडेशन" नामक एक्सेल में एक ऐडिन भी मिला, जो मैंने निश्चित रूप से स्वेच्छा से स्थापित नहीं किया था


1

मैं नीचे के कारणों के लिए स्टेन के उत्तर # 2 में अधिक विवरण जोड़ना चाहूंगा :

  • मैंने इस मुद्दे का सामना खुद दर्जन से अधिक बार किया और परियोजना की स्थितियों पर निर्भर करते हुए, मैंने स्टेन के वूडू जादू उत्तर # 1 या # 2 के बीच चुना । जब मैं फिर से इसका सामना करता रहा, तो मैं और अधिक जिज्ञासु हो गया कि यह पहली जगह में क्यों होता है।

  • मैं मैक उपयोगकर्ताओं के लिए भी उत्तर जोड़ना चाहूंगा।

  • इन दोनों संभावित उत्तरों की सीमाएँ हैं:

    • यदि कोड सुरक्षित है (और आपको पासवर्ड नहीं पता है) तो उत्तर # 1 मदद नहीं करेगा।
    • यदि कोड असुरक्षित है तो उत्तर # 2 आपको कोड को डीबग करने नहीं देगा।

  1. यह निम्न कारणों में से किसी के कारण हो सकता है:

    • ऑपरेटिंग सिस्टम एक्सेल प्रक्रिया को सिस्टम संसाधन आवंटित नहीं कर रहा है। ( समाधान: ऑपरेटिंग सिस्टम को शुरू करने के लिए एक की जरूरत है - सफलता की दर बहुत कम है लेकिन कई बार काम करने के लिए जाना जाता है)

    • पी-कोड एक मध्यवर्ती कोड है जो विज़ुअल बेसिक (.NET से पहले) में उपयोग किया गया था और इसलिए यह अभी भी VBA में उपयोग किया जाता है। इसने धीमी निष्पादन की कीमत पर अधिक कॉम्पैक्ट निष्पादन योग्य बनाया। मैं पी-कोड की बात क्यों कर रहा हूं? क्योंकि यह कई निष्पादन और बड़ी फ़ाइलों के बीच कभी-कभी भ्रष्ट हो जाता है या सिर्फ सॉफ्टवेयर की स्थापना के कारण (एक्सेल) कहीं भ्रष्ट हो गया। जब पी-कोड भ्रष्ट हो जाता है। कोड निष्पादन बाधित हो रहा है। उपाय: इन मामलों में, यह माना जाता है कि आपका कोड दूषित होने लगा है और भविष्य में संभावना है कि आपकी एक्सेल कार्यपुस्तिका भी आपको "एक्सेल फ़ाइल दूषित और खोली नहीं जा सकती" जैसे संदेश देते हुए भ्रष्ट हो जाए। इसलिए, एक त्वरित समाधान के रूप में, आप अपनी आवश्यकताओं के अनुसार उत्तर # 1 या उत्तर # 2 पर भरोसा कर सकते हैं। हालांकि, भ्रष्टाचार के संकेतों को कभी नजरअंदाज न करें। नोटपैड में अपने कोड मॉड्यूल को कॉपी करना, मॉड्यूल को हटाना, कार्यपुस्तिका को सहेजना और बंद करना, एक्सेल को बंद करना बेहतर है। अब, कार्यपुस्तिका को फिर से खोलें और नोटपैड से पहले कॉपी किए गए कोड के साथ नए मॉड्यूल बनाना शुरू करें।

  2. मैक उपयोगकर्ता, नीचे दिए गए किसी भी विकल्प का प्रयास करें और उनमें से निश्चित रूप से आपके सिस्टम आर्किटेक्चर यानी ओएस और ऑफिस संस्करण के आधार पर काम करेंगे

    • Ctrl + Pause
    • Ctrl + ScrLk
    • Esc+ Esc(लगातार दो बार दबाएं)

उपरोक्त कुंजी संयोजनों का उपयोग करके आपको ब्रेक मोड में डाल दिया जाएगा क्योंकि मैक्रो वर्तमान कार्य को पूरा करने के तुरंत बाद निष्पादन को निलंबित कर देता है। यह चरण 2 का प्रतिस्थापन है।

  1. समाधान: उत्तर # 1 और उत्तर # 2 का उपयोग करने की सीमा को दूर करने के लिए , मैं त्रुटि हैंडलर में कथन xlErrorHandlerके साथ उपयोग करता हूं Resumeयदि त्रुटि कोड 18 है। फिर, त्रुटि के रूप में चल रही प्रक्रिया में रुकावट भेजी जाती है, एक त्रुटि हैंडलर ने एक त्रुटि GoTo स्टेटमेंट के साथ सेट अप किया। ट्रेस करने योग्य त्रुटि कोड 18 है। वर्तमान प्रक्रिया बाधित है, और उपयोगकर्ता प्रक्रिया को डीबग या समाप्त कर सकता है। Microsoft चेतावनी देता है कि यदि आपका त्रुटि हैंडलर फिर से बयान जारी नहीं करता है तो उसका उपयोग न करें अन्यथा आपका त्रुटि हैंडलर हमेशा उसी कथन पर वापस लौटता है। ठीक यही हम कोड निष्पादन के अवांछित अर्थहीन व्यवधानों में चाहते हैं।


0

मेरी वर्तमान प्रतिष्ठा अभी तक इसे एक टिप्पणी के रूप में पोस्ट करने की अनुमति नहीं देती है। डिबग मोड में प्रवेश करने के लिए स्टैंस सॉल्यूशन दो बार Ctrl + ब्रेक दबाएं, ऑन करें, सेव ने मेरी समस्या को हल किया, लेकिन मेरे पास दो ट्विस्ट हैं:

  1. मेरा प्रोजेक्ट स्ट्रेंथ पासवर्ड सुरक्षित है, इसलिए डिबग मोड में आने के लिए मुझे पहले डेवलपर मोड में प्रवेश करना था, प्रोजेक्ट संरचना पर क्लिक करें और पासवर्ड दर्ज करें।

  2. मेरी परियोजना एक टेम्पलेट फ़ाइल (.xmtl) है। मैंने फ़ाइल को डबल क्लिक के माध्यम से खोला जो इसे पिछले फ़ाइल नाम के अंत में "1" के साथ .xml के रूप में खोलता है। मैंने Stans निर्देश के अनुसार बग को ठीक किया और इसे उस रूप में सहेजा ... 1.xml फ़ाइल। जब मैंने फिर टेम्पलेट खोला, इस बार टेम्पलेट के रूप में, और उस फ़ाइल पर एक ही बग फिक्स लागू करना चाहता था, बग चला गया था! मैंने इस फ़ाइल को नहीं बदला और मैक्रो को निष्पादित करने में अभी भी कोई बग नहीं है। इसका मतलब यह है कि बग वास्तव में फ़ाइल में नहीं है, लेकिन एक्सेल में (छिपी हुई) सेटिंग में है।


-1

अब यह समस्या एक्सेल से संबंधित है

पुनः स्थापित करें और इसे पैच करें :) अन्य तो यह बताने के लिए कठिन है।


हमने एक पुन: स्थापित करने की कोशिश की, हालांकि उपयोगकर्ता ने 'भूल गया' के बाद रिबूट करने के लिए समर्थन आदमी ने अपना सामान किया। कार्यालय के एक और पुनर्स्थापना से बचने की कोशिश कर रहा हूँ, लेकिन यह अपरिहार्य हो सकता है ... धन्यवाद
फिल व्हिटिंगटन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.