मौजूदा निजी VBA उप को संशोधित करें? [बन्द है]


-2

मैंने रेखा के साथ एक मैक्रो लिखा है:

Private Sub Worksheet_Activate()
   Some code
End Sub

परीक्षण के दौरान यह ठीक काम किया, और फिर जारी किया गया। उपयोगकर्ता की प्रतिक्रिया के बाद, अब मुझे मैक्रो को संशोधित करने की आवश्यकता है लेकिन इसे उजागर नहीं कर सकता क्योंकि यह VBA संपादक में नहीं दिखाई देगा।

क्या सब को अनहाइड करने, इसे संशोधित करने और इसे फिर से छिपाने का एक तरीका है (वितरण को मैक्रोप्रूफ और संभव के रूप में अच्छी तरह से छिपाना आवश्यक है)?

अग्रिम में बहुत धन्यवाद, लालकृष्ण


1
नमस्ते, SuperUser में आपका स्वागत है। थोड़ी अधिक जानकारी आपको उत्तर देने में तेज़ी से मदद करेगी; एक निजी उप केवल मैक्रो सूची से छिपा हुआ है जिसे उपयोगकर्ता मैक्रो फ़ंक्शन का चयन करते समय देख सकता है, मैक्रो को अभी भी परियोजना संग्रह में दिखाना चाहिए। मैक्रो कहाँ आयोजित किया जाता है? एक शीट पर या इस कार्यपुस्तिका पर? क्या परियोजना बंद कर दी गई है?
CLockeWork

नमस्ते, त्वरित प्रतिक्रिया के लिए धन्यवाद। मैक्रो विशिष्ट कार्यपुस्तिका AFAIK (शायद यह कार्यपुस्तिका) की एक कार्यपत्रक में रखी गई है, लेकिन निश्चित रूप से अब इसे पुन: पेश करना कठिन है :-( कार्यपुस्तिका को वितरित करते समय लॉक किया गया है लेकिन लेखक होने के नाते, मैं मैक्रो को अनलॉक किए गए राज्य में संपादित करता हूं और विवरण संदर्भित करता है खुला हुआ राज्य।
user239762

1
क्या आपको पता है कि कोड को किस वर्कशीट से बांधा गया है? Worksheet_Activate एक विशिष्ट वर्कशीट के लिए है, और एक अलग मॉड्यूल में नहीं दिखाई देगा
SeanC

क्या आपके पास अपने प्रोजेक्ट की बैकअप डेवलपमेंट कॉपी नहीं है? क्यों नहीं वहाँ से काम करते हैं और फिर इसे उपयोगकर्ता की खपत के लिए repackage?
Excellll

क्या आपको यकीन है कि यह अंदर नहीं है PERSONAL.xlsb - VBA संपादक की जाँच करें
Raystafarian

जवाबों:


2


मेरा मानना ​​है कि आपने राइट-क्लिक मेनू में कोड के ब्लॉक, राइट क्लिक और प्रेस को दबाकर अपना कोड छिपाया है। यह दिखाई देने वाली शीट को छोड़ देगा लेकिन कोड छिपा देगा। इसे पूर्ववत करने के लिए, उस शीट का चयन करें जहां कोड होना चाहिए, राइट क्लिक करें और राइट-क्लिक मेनू से व्यू कोड चुनें, इससे कोड वापस आ जाएगा।



एक निजी उप के कोड को छिपाने का मतलब है कि अगर किसी को इसके बारे में पता नहीं है, तो उन्हें लगता है कि कोई कोड नहीं था, क्योंकि उनके पास इसे खोजने का कोई तरीका नहीं होगा। अपने कोड को छिपाने के बजाय:


टूल्स के तहत VBA प्रोजेक्ट प्रॉपर्टीज पर जाएं
VBA project


फिर सुरक्षा टैब पर, देखने के लिए लॉक प्रोजेक्ट चुनें, और एक पासवर्ड जोड़ें Protection


फिर अपनी डेवलपर विंडो को बंद करें और इसे फिर से लॉन्च करें। अपनी टीम के अन्य सदस्यों को प्रोजेक्ट पासवर्ड देना सुनिश्चित करें, क्योंकि इसके आस-पास कोई रास्ता नहीं है।



अब आपका कोड केवल सही पासवर्ड वाले लोगों के लिए ही सुलभ होगा, लेकिन आपका कोड उन लोगों को दिखाई देगा, जिन्हें इसकी आवश्यकता है।


जवाब के लिए धन्यवाद। बहरहाल, मामला यह नहीं। मैंने व्यू कोड का उपयोग करके वर्कशीट का कोड खोला, अपने मैक्रो को वहां रखा (वेब ​​और मेरे अपने कोड से स्निपेट्स का मिश्रण), परीक्षण किया गया, जैसा कि आप वर्णन करते हैं, संरक्षित है और बाहर भेजा गया है। एक बार जब मैंने संशोधित करने की कोशिश की, तो वर्कशीट कोड (असुरक्षित होने के बाद) खाली दिखाई देता है लेकिन मैक्रो काम करता है। वास्तव में, VBA विंडो में मैं एक नया कार्यपत्रक जोड़ सकता हूं। नियमित करें ... विषम ...। यदि यह किसी भी महत्व का है, तो मैं संगतता कारणों से Excel 2003 (और 2003 VBA) में काम करता हूं, ताकि अधिकांश फॉर्म प्राप्तकर्ताओं को कवर किया जा सके।
user239762

बहुत अजीब। केवल एक चीज जो मुझे पता है कि यह अभी भी चला सकता है अगर यह अभी भी वहां है, जैसा कि छिपा हुआ है। तो आपने प्रोजेक्ट अनलॉक कर दिया है, और कोड पृष्ठ को प्राप्त करने के लिए प्रत्येक शीट पर डबल क्लिक करने की कोशिश की है, फिर प्रोजेक्ट एक्सप्लोरर में इसे राइट क्लिक करके और व्यू कोड पर क्लिक करें, और कोड पेज में अभी भी कोड दिखाई नहीं दे रहा है? यह पूछने के लिए मुझे माफ़ कर दें, लेकिन क्या आप सही प्रोजेक्ट देख रहे हैं? सूची में मेरी व्यक्तिगत पुस्तक के साथ मैं अक्सर गलत प्रोजेक्ट में शामिल होता हूं: \
CLockeWork

इसके अलावा, मैंने एक त्वरित परीक्षण किया है और एक ही शीट में एक से अधिक वर्कशीट_एक्टिवेट कोड होना संभव है, इसलिए हमें कम से कम उस बिट के बारे में चिंता करने की आवश्यकता नहीं है :)
CLockeWork

यह निश्चित रूप से एक ही कार्यपुस्तिका है (केवल एक ही जो मैं वर्तमान में काम करता हूं), और मैंने आपके द्वारा वर्णित किया था, कोई फायदा नहीं हुआ। नवीनतम उत्तर के लिए धन्यवाद, हालांकि, यह काम करने लगता है, मैंने पुराने + नए कोड को एक नए Worksheet_Activate उप में जोड़ा, इस बार निजी नहीं। नासमझी लेकिन करनी पड़ेगी। फिर भी उत्सुक जहाँ बग से आता है ...
user239762

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