Microsoft Excel ActiveX नियंत्रण अक्षम है?




vba (8)

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

धन्यवाद,

माइक


KB और इसके बाद के संस्करण में सलाह मेरे लिए काम नहीं किया। मुझे पता चला कि अगर एक एक्सेल 2007 उपयोगकर्ता (सुरक्षा अद्यतन के साथ या इसके बिना; सटीक कारण जो इसके कारण हैं) फ़ाइल को बचाता है, तो मूल त्रुटि वापस आती है।

मुझे पता चला कि फ़ाइल को फिर से ठीक करने का सबसे तेज़ तरीका सभी VBA कोड को हटाना है। सहेजें। फिर VBA कोड (कॉपी / पेस्ट) को बदलें। सहेजें। यह प्रयास करने से पहले, मैं .EXD फ़ाइलों को पहले हटा देता हूं, क्योंकि अन्यथा मुझे खुले में त्रुटि मिलती है।

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


अंतिम उपयोगकर्ताओं के लिए सरल निर्देश। निम्नलिखित को कॉपी / पेस्ट करने के लिए स्वतंत्र महसूस करें।

यहां समस्या आने पर इसे ठीक करने का तरीका बताया गया है:

  1. अपने सभी कार्यालय कार्यक्रमों और फ़ाइलों को बंद करें।
  2. Windows एक्सप्लोरर खोलें और एड्रेस बार में% TEMP% टाइप करें, फिर Enter दबाएँ। यह आपको सिस्टम अस्थायी फ़ोल्डर में ले जाएगा।
  3. निम्न फ़ोल्डरों का पता लगाएँ और हटाएं: Excel8.0, VBE, Word8.0
  4. अब अपनी फ़ाइल का फिर से उपयोग करने का प्रयास करें, इसमें कोई समस्या नहीं होनी चाहिए।

इस समस्या को हल करने के लिए आपको तब तक इंतजार करना पड़ सकता है जब तक समस्या न हो। समय से पहले इसे लागू करना (विंडोज अपडेट आपके सिस्टम पर स्थापित होने से पहले) मदद नहीं करेगा।


इस मुद्दे पर जानकारी और अपडेट का सबसे अच्छा स्रोत मुझे मिल सकता है TechNet ब्लॉग »Microsoft एक्सेल सपोर्ट टीम ब्लॉग में (जैसा कि उल्लेख किया गया है):

Source

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

Microsoft से नवीनतम अद्यतन और फिक्स: 3025036 MS14-082 सुरक्षा अद्यतन को स्थापित करने के बाद ActiveX कस्टम Office समाधान में "ऑब्जेक्ट सम्मिलित नहीं कर सकता" त्रुटि

स्थिति: 10 मार्च, 2015 अपडेट करें:

इस मुद्दे के लिए हॉटफ़िक्स मार्च 2015 के अपडेट्स ऑफ़िस 2007, 2010 और 2013 में जारी किए गए हैं।

समस्या के बारे में सामान्य जानकारी:

कुछ उपयोगकर्ताओं के लिए, प्रपत्र नियंत्रण (FM20.dll) MS14-082 Microsoft Office सुरक्षा अद्यतन दिसंबर 2014 के लिए स्थापित करने के बाद अपेक्षा के अनुरूप काम नहीं कर रहे हैं। कई बार समस्याएँ अनुभव होती हैं जैसे कि वे मौजूदा VBA प्रोजेक्ट्स के साथ फ़ाइलें खोलते हैं जो प्रपत्र नियंत्रणों का उपयोग करते हैं, प्रयास करें एक नई वर्कशीट में प्रपत्र नियंत्रण सम्मिलित करने के लिए या इन घटकों का उपयोग करने वाले तृतीय पक्ष सॉफ़्टवेयर को चला सकते हैं।

https://technet.microsoft.com/en-us/library/security/ms14-082.aspx

आपको त्रुटियां प्राप्त हो सकती हैं जैसे: "ऑब्जेक्ट सम्मिलित नहीं कर सकते"; "ऑब्जेक्ट लाइब्रेरी अमान्य है या ऑब्जेक्ट परिभाषाओं के संदर्भ शामिल हैं जो नहीं मिल सके"; "इस ऑब्जेक्ट को बनाने के लिए उपयोग किया जाने वाला प्रोग्राम फॉर्म है। वह प्रोग्राम या तो आपके कंप्यूटर पर स्थापित नहीं है या वह प्रतिक्रिया नहीं दे रहा है। इस ऑब्जेक्ट को संपादित करने के लिए, फॉर्म इंस्टॉल करें या सुनिश्चित करें कि फॉर्म में कोई डायलॉग बॉक्स बंद हैं।" [...] इसके अतिरिक्त, आप किसी वर्कशीट पर ActiveX नियंत्रण के गुणों का उपयोग करने या बदलने में असमर्थ हो सकते हैं या कोड के माध्यम से वर्कशीट के सदस्य के रूप में ActiveX नियंत्रण को संदर्भित करने का प्रयास करते समय कोई त्रुटि प्राप्त कर सकते हैं।

मैनुअल और अतिरिक्त समाधान:

स्क्रिप्टिंग समाधान:

क्योंकि यह समस्या एक से अधिक मशीन को प्रभावित कर सकती है, इसलिए EXD फ़ाइलों को हटाने और पॉलिसी का उपयोग करके लॉगऑन प्रक्रिया के भाग के रूप में स्क्रिप्ट को चलाने के लिए एक स्क्रिप्टिंग समाधान बनाना भी संभव है। आपको जिस स्क्रिप्ट की आवश्यकता होगी, उसमें निम्न पंक्तियाँ होनी चाहिए और प्रत्येक USER के लिए चलाने की आवश्यकता होगी क्योंकि .exd फाइलें USER विशिष्ट हैं।

del %temp%\vbe\*.exd
del %temp%\excel8.0\*.exd
del %appdata%\microsoft\forms\*.exd
del %appdata%\microsoft\local\*.exd
del %temp%\word8.0\*.exd
del %temp%\PPT11.0\*.exd

अतिरिक्त कदम:

यदि ऊपर दिए गए चरण आपकी समस्या का समाधान नहीं करते हैं, तो एक और कदम जिसका परीक्षण किया जा सकता है (नीचे चेतावनी देखें):

  1. पूरी तरह से अपडेट की गई मशीन पर और .exd फाइल्स को हटाने के बाद, एक्सेल में फाइल को एडिट परमिशन से खोलें।

  2. अनुप्रयोगों के लिए विज़ुअल बेसिक खोलें> किसी भी कोड मॉड्यूल के लिए किसी टिप्पणी या संपादन को जोड़कर परियोजना को संशोधित करें> डिबग> संकलन VBAPTject।

  3. फ़ाइल को सहेजें और पुनः खोलें। संकल्प के लिए परीक्षा।

यदि हल किया जाता है, तो अतिरिक्त उपयोगकर्ताओं को यह अद्यतन परियोजना प्रदान करें।

चेतावनी: यदि यह चरण आपके मुद्दे को हल करता है, तो ध्यान रखें कि इस अद्यतन परियोजना को अन्य उपयोगकर्ताओं को तैनात करने के बाद, इन उपयोगकर्ताओं को अपने सिस्टम और .exd फ़ाइलों के साथ ही हटाए गए अद्यतनों को भी लागू करना होगा।


मुझे आखिरकार आधिकारिक Microsoft KB पर यह उत्तर मिला:

http://support.microsoft.com/kb/3025036/EN-US

पिछले उत्तरों में हमारे पास कोई नई जानकारी नहीं है, लेकिन कम से कम यह स्वीकार करता है कि Microsoft इस मुद्दे से अवगत है।


मैं एक उत्तर देना चाहता हूं जो मेरे लिए एकमात्र चीज के रूप में काम करता है (मुझे एहसास है कि मैं कभी भी एक ही हो सकता हूं)। मेरे पास एक मैक्रो था जिसे मैं रिबन का उपयोग करके कॉल कर रहा था। इसका निम्न कोड था:

colStore = new Collection

मुझे पता नहीं था कि यह एक त्रुटि फेंकता है इसलिए मैं चकरा गया और यहाँ सब कुछ करने की कोशिश की। बटन ने काम करना बंद कर दिया और मैं इसे काम नहीं कर पाया। जब मैंने त्रुटि देखी और उसे ठीक किया:

Set colStore = new Collection

इसने फिर से काम करना शुरू कर दिया। बिलकुल अजीब है अगर आप मुझसे पूछें लेकिन हो सकता है कि इससे वहां किसी को मदद मिले जो मेरे जैसा ही हताश था।


मैं एक एक्सेल डेवलपर हूं, और ऐसा होने पर मुझे निश्चित रूप से दर्द महसूस हुआ। सौभाग्य से, मैं एक्सेल चलने पर भी VBA में MSForms.exd फ़ाइलों का नाम बदलकर वर्कअराउंड ढूंढने में सक्षम था, जो समस्या को भी ठीक कर सकता है। एक्सेल डेवलपर्स जिन्हें अपने स्प्रेडशीट को वितरित करने की आवश्यकता होती है, वे एमएस स्प्रेड के लिए इम्यून बनाने के लिए अपने स्प्रेडशीट में निम्नलिखित VBA कोड जोड़ सकते हैं।

इस कोड को किसी भी मॉड्यूल में रखें।

Public Sub RenameMSFormsFiles() 
  Const tempFileName As String = "MSForms - Copy.exd"  
  Const msFormsFileName As String = "MSForms.exd"  
  On Error Resume Next 

  'Try to rename the C:\Users\[user.name]\AppData\Local\Temp\Excel8.0\MSForms.exd file  
  RenameFile Environ("TEMP") & "\Excel8.0\" & msFormsFileName, Environ("TEMP") & "\Excel8.0\" & tempFileName 
  'Try to rename the C:\Users\[user.name]\AppData\Local\Temp\VBE\MSForms.exd file  
  RenameFile Environ("TEMP") & "\VBE\" & msFormsFileName, Environ("TEMP") & "\VBE\" & tempFileName 
End Sub  

Private Sub RenameFile(fromFilePath As String, toFilePath As String) 
  If CheckFileExist(fromFilePath) Then 
      DeleteFile toFilePath  
      Name fromFilePath As toFilePath  
  End If  
End Sub

Private Function CheckFileExist(path As String) As Boolean 
  CheckFileExist = (Dir(path) <> "")  
End Function  

Private Sub DeleteFile(path As String) 
  If CheckFileExist(path) Then 
      SetAttr path, vbNormal  
      Kill path  
  End If  
End Sub    

RenameMSFormsFiles सबरूटीन MSForms.exd फ़ाइलों को C:\Users\[user.name]\AppData\Local\Temp\Excel8.0\ और C:\Users\[user.name]\AppData\Local\Temp\VBE\ नाम बदलने का प्रयास करता है MSForms को C:\Users\[user.name]\AppData\Local\Temp\VBE\ फ़ोल्डर्स - Copy.exd।

फिर Workbook_Open ईवेंट की बहुत शुरुआत में RenameMSFormsFiles सबरूटीन को कॉल करें।

Private Sub Workbook_Open() 
  RenameMSFormsFiles  
End Sub

स्प्रेडशीट खुलने पर MSForms.exd फ़ाइलों का नाम बदलने का प्रयास करेगी। जाहिर है, यह एक सही तय नहीं है:

  1. प्रभावित उपयोगकर्ता अभी भी VX कोड को स्प्रेडशीट खोलने के लिए VBA कोड चलाते समय ActiveX नियंत्रण त्रुटियों का अनुभव करेगा। केवल एक बार VBA कोड निष्पादित करने और Excel को पुनरारंभ करने के बाद, समस्या ठीक हो गई है। आम तौर पर जब कोई उपयोगकर्ता एक टूटी हुई स्प्रेडशीट का सामना करता है, तो घुटने की झटका प्रतिक्रिया एक्सेल को बंद करने और स्प्रेडशीट को फिर से खोलने का प्रयास करना है। :)
  2. MSForms.exd फ़ाइलों को जब भी MSForms.exd फ़ाइलों के साथ कोई समस्या नहीं होती है, तब भी स्प्रेडशीट खुलती है, का नाम बदल दिया जाता है। लेकिन स्प्रेडशीट ठीक काम करेगी।

कम से कम अभी के लिए, एक्सेल डेवलपर्स अपने काम को इस वर्कअराउंड के साथ वितरित करना जारी रख सकते हैं जब तक कि माइक्रोसॉफ्ट एक फिक्स जारी नहीं करता।

मैंने इसका समाधान here पोस्ट किया here


यहाँ सबसे अच्छा जवाब है जो मुझे Microsoft एक्सेल सपोर्ट टीम ब्लॉग पर मिला है

कुछ उपयोगकर्ताओं के लिए, प्रपत्र नियंत्रण (FM20.dll) अब दिसंबर 2014 के अपडेट को स्थापित करने के बाद अपेक्षित रूप से काम नहीं कर रहे हैं। समस्याएँ ऐसे समय में अनुभव होती हैं जब वे प्रपत्र नियंत्रणों का उपयोग करके मौजूदा VBA प्रोजेक्ट्स के साथ फ़ाइलें खोलते हैं, एक नए वर्कशीट में एक नियंत्रण नियंत्रण सम्मिलित करने का प्रयास करते हैं या तृतीय पक्ष सॉफ़्टवेयर चलाते हैं जो इन घटकों का उपयोग कर सकते हैं।

आपको इस तरह की त्रुटियां प्राप्त हो सकती हैं:

"ऑब्जेक्ट सम्मिलित नहीं कर सकता है" "ऑब्जेक्ट लायब्रेरी अमान्य है या इसमें ऑब्जेक्ट परिभाषाओं के संदर्भ शामिल हैं जो नहीं मिल सके"

साथ ही, आप किसी कार्यपत्रक पर ActiveX नियंत्रण के गुणों का उपयोग या परिवर्तित करने में असमर्थ हो सकते हैं या कोड के माध्यम से किसी कार्यपत्रक के सदस्य के रूप में ActiveX नियंत्रण को संदर्भित करने का प्रयास करते समय कोई त्रुटि प्राप्त कर सकते हैं। अद्यतन के बाद पालन करने के लिए कदम:

इस समस्या को हल करने के लिए, आपको क्लाइंट कंप्यूटर पर नियंत्रण प्रकार लाइब्रेरीज़ (एक्सटेंडर फ़ाइलों) के कैश्ड संस्करणों को हटाना होगा। ऐसा करने के लिए, आपको ".exd" फ़ाइल नाम एक्सटेंशन वाली फ़ाइलों के लिए अपनी हार्ड डिस्क को खोजना होगा और आपके द्वारा खोजे जाने वाली सभी .exd फ़ाइलों को हटा दें। जब आप VBA का उपयोग करते हैं तो अगली बार नए नियंत्रणों का उपयोग करने पर ये .exd फाइलें अपने आप फिर से बन जाएंगी। ये एक्सटेंडर फाइल उपयोगकर्ता के प्रोफाइल के तहत होगी और अन्य स्थानों पर भी हो सकती है, जैसे कि निम्नलिखित:

% AppData% \ Microsoft \ रूपों

% Temp% \ Excel8.0

% अस्थायी% \ VBE

स्क्रिप्टिंग समाधान:

क्योंकि यह समस्या एक से अधिक मशीन को प्रभावित कर सकती है, इसलिए EXD फ़ाइलों को हटाने और पॉलिसी का उपयोग करके लॉगऑन प्रक्रिया के भाग के रूप में स्क्रिप्ट को चलाने के लिए एक स्क्रिप्टिंग समाधान बनाना भी संभव है। आपको जिस स्क्रिप्ट की आवश्यकता होगी, उसमें निम्न पंक्तियाँ होनी चाहिए और प्रत्येक USER के लिए चलाने की आवश्यकता होगी क्योंकि .exd फाइलें USER विशिष्ट हैं।

डेल% अस्थायी% \ vbe \ *। exd

डेल% अस्थायी% \ excel8.0 \ *। exd

डेल% appdata% \ microsoft \ रूपों \ *। exd

डेल% appdata% \ microsoft \ local \ *। exd

डेल% appdata% \ Roaming \ microsoft \ रूपों \ *। exd

डेल% अस्थायी% \ word8.0 \ *। exd

डेल% अस्थायी% \ PPT11.0 \ *। exd

अतिरिक्त कदम:

यदि ऊपर दिए गए चरण आपकी समस्या का समाधान नहीं करते हैं, तो एक और कदम जिसका परीक्षण किया जा सकता है (नीचे चेतावनी देखें):

  1. पूरी तरह से अपडेट की गई मशीन पर और .exd फाइल्स को हटाने के बाद, एक्सेल में फाइल को एडिट परमिशन से खोलें।

    अनुप्रयोगों के लिए विज़ुअल बेसिक खोलें> किसी भी कोड मॉड्यूल के लिए किसी टिप्पणी या संपादन को जोड़कर परियोजना को संशोधित करें> डिबग> संकलन VBAPTject।

    फ़ाइल को सहेजें और पुनः खोलें। संकल्प के लिए परीक्षा। यदि हल किया जाता है, तो अतिरिक्त उपयोगकर्ताओं को यह अद्यतन परियोजना प्रदान करें।

    चेतावनी: यदि यह चरण आपके मुद्दे को हल करता है, तो ध्यान रखें कि इस अद्यतन परियोजना को अन्य उपयोगकर्ताओं को तैनात करने के बाद, इन उपयोगकर्ताओं को अपने सिस्टम और .exd फ़ाइलों के साथ ही हटाए गए अद्यतनों को भी लागू करना होगा।

यदि यह आपकी समस्या को हल नहीं करता है, तो यह एक अलग मुद्दा हो सकता है और आगे समस्या निवारण आवश्यक हो सकता है।

Microsoft अभी इस मुद्दे पर काम कर रहा है। अपडेट के लिए ब्लॉग देखें।

Source


विंडोज 8.1 के साथ मैं विंडोज़ खोज का उपयोग करके कोई भी .exd फाइलें नहीं पा सका। दूसरी ओर, एक cmd कमांड dir *.exd /S को मेरे सिस्टम पर एक फाइल मिली।





activex