टिप्पणियों में चर्चा के अनुसार, वीबीए में Sheets
का चयन नहीं कर सकता जो सक्रिय नहीं है (या Range
ऑब्जेक्ट्स उन पर ऑब्जेक्ट्स)।
उदाहरण के लिए कोड
Sheets(1).Activate
Sheets(2).Range("A1").Select
आपको जो समस्या आ रहे हैं कारण होगा निम्नलिखित।
आपके मामले में, यह आप Select
एक चादर जो सक्रिय नहीं है करने के लिए प्रयास कर रहे हैं लगता है - अपने mainWS
वस्तु शायद बिंदु आप इस कोड को बुला रहे हैं पर ActiveSheet
नहीं है।
if (ActiveSheet.Name <> mainWS.Name) then
msgbox ("Going to crash after clicking ok!")
end if
mainWS.Select
ध्यान दें कि आप आदेश ActiveSheet
के साथ सक्रिय कार्यपत्रक का उल्लेख या तो गुण या जो कुछ भी अन्य कार्यों प्राप्त करने के लिए कर सकते हैं: एक आसान तरीका है, तो यह हो रहा है परीक्षण करने के लिए अगर आप अपने कोड के अंत में निम्नलिखित जोड़ना है आप करने में रुचि रखते हैं।
यह त्रुटि तब भी हो सकती है जब आपके पास कार्यपुस्तिका में सभी कार्यपत्रकों के माध्यम से लूप काम कर रहा हो और छिपी चादरें हों। उस के लिए देखो। नहीं तो मैं Option Explicit
उपयोग करने पर विचार के रूप में आप अक्सर मुद्दों के सभी प्रकार में चला सकते हैं -
अंतिम, और अपने विशिष्ट त्रुटि संदेश से संबंधित नहीं है, मैं तुम्हें कहीं वे चर घोषित कर रहे हैं और सिर्फ उन्हें यहाँ कॉपी नहीं किया ग्रहण अपने वीबीए कोड के शीर्ष पर Option Explicit
के बिना।
पर सेट किया जाता है? क्या कार्यपुस्तिका वही है? – enderland
'mainWB 'सक्रिय है? –
और इसलिए 'चयन करें' से बचा जाना चाहिए :) इस लिंक को देखें http://stackoverflow.com/questions/10714251/excel-macro-avoiding-using- चयन करें –