यह ट्यूटोरियल VBA ActiveWorkbook और ThisWorkbook के बीच के अंतर पर चर्चा करेगा।
सक्रिय कार्यपुस्तिका बनाम यह कार्यपुस्तिका
VBA में ActiveWorkbook और ThisWorkbook के बीच अंतर जानना महत्वपूर्ण है:
ActiveWorkbook वह कार्यपुस्तिका है जो वर्तमान में सक्रिय है (इसी तरह ActiveSheet वर्तमान में सक्रिय पत्रक है)। यह कार्यपुस्तिका वह कार्यपुस्तिका है जहां वीबीए कोड संग्रहीत किया जाता है। यह कार्यपुस्तिका कभी नहीं बदलेगी।
यह कार्यपुस्तिका
इस कार्यपुस्तिका को एक वस्तु चर के रूप में सोचें जो आपको वर्तमान में चल रहे कोड वाली कार्यपुस्तिका को संदर्भित करने की अनुमति देता है।
यह कोड इस वर्कबुक नाम के साथ एक संदेशबॉक्स प्रदर्शित करेगा:
123 | उप शो_यह कार्यपुस्तिका ()MsgBox ThisWorkbook.Nameअंत उप |
सक्रिय कार्यपुस्तिका
ActiveWorkbook एक ऑब्जेक्ट चर है जो आपको वर्तमान में सक्रिय कार्यपुस्तिका को संदर्भित करने की अनुमति देता है।
यह कोड ActiveWorkbook नाम के साथ एक MessageBox प्रदर्शित करेगा:
123 | उप शो_एक्टिव वर्कबुक ()MsgBox ActiveWorkbook.Nameअंत उप |
वीबीए सक्रिय कार्यपुस्तिका मानता है
ActiveWorkbook के भीतर ऑब्जेक्ट्स (उदा. पत्रक) के साथ कार्य करने का प्रयास करते समय, आपको ActiveWorkbook ऑब्जेक्ट को स्पष्ट रूप से बताने की आवश्यकता नहीं है। VBA मान लेगा कि आप ActiveWorkbook की बात कर रहे हैं।
तो यह:
1 | ActiveWorkbook.Sheets("Sheet1").Range("$A$5").Value = 1 |
यह ऐसा ही है:
1 | शीट्स ("शीट 1")। रेंज ("$ ए $ 5")। मान = 1 |
नई या खुली कार्यपुस्तिकाएं सक्रिय हैं
जब भी आप कोई नई कार्यपुस्तिका बनाते हैं या कोई कार्यपुस्तिका खोलते हैं, तो कार्यपुस्तिका "सक्रिय" हो जाती है। आप स्वयं इस कोड के साथ देख सकते हैं जो एक कार्यपुस्तिका जोड़ देगा और नई कार्यपुस्तिका का नाम पुनः प्राप्त करेगा:
1234 | उप शो_एक्टिववर्कबुक_जोड़ें ()कार्यपुस्तिकाएँ।जोड़ेंMsgBox ActiveWorkbook.Nameअंत उप |
किसी कार्यपुस्तिका को जोड़ने या खोलने के बाद, आप ActiveWorkbook ऑब्जेक्ट का उपयोग करके इसे किसी चर को असाइन कर सकते हैं। हम आपको नीचे के उदाहरणों में दिखाएंगे कि कैसे:
यह कार्यपुस्तिका और सक्रिय कार्यपुस्तिका उदाहरण
सक्रिय कार्यपुस्तिका स्विच करें
कार्यपुस्तिका नाम का उपयोग करके सक्रिय कार्यपुस्तिका को स्विच करें:
1 | कार्यपुस्तिकाएं ("पुस्तक 1")। सक्रिय करें |
वर्कशीट ऑर्डर नंबर का उपयोग करके सक्रिय कार्यपुस्तिका को स्विच करें (1 कार्यपुस्तिका में पहली कार्यपत्रक है)
1 | कार्यपुस्तिका (1)। सक्रिय करें |
इस कार्यपुस्तिका को सक्रिय बनाएं
इस कार्यपुस्तिका को बनाएं (जहां वर्तमान में चल रहा कोड संग्रहीत है) ActiveWorkbook:
1 | यह कार्यपुस्तिका। सक्रिय करें |
ActiveWorkbook को वेरिएबल पर सेट करें
ActiveWorkbook को कार्यपुस्तिका ऑब्जेक्ट चर में असाइन करें:
12 | कार्यपुस्तिका के रूप में मंद wbडब्ल्यूबी = एक्टिववर्कबुक सेट करें |
सक्रिय कार्यपुस्तिका को बंद करें और सहेजें
ActiveWorkbook को बंद और सहेजता है:
1 | ActiveWorkbook.Close SaveChanges:=True |
बिना सहेजे सक्रिय कार्यपुस्तिका को बंद करें
बिना सहेजे ActiveWorkbook बंद कर देता है:
1 | ActiveWorkbook.Close SaveChanges:=False |
ActiveWorkbook - इस रूप में सहेजें
सक्रिय कार्यपुस्तिका के रूप में सहेजें निष्पादित करता है।
123456789 | उप SaveAsActiveWorkbook ()मंद परिणाम वैरिएंट के रूप मेंपरिणाम = आवेदन। GetSaveAsFilename (आरंभिक फ़ाइल नाम: = "", _FileFilter:="Excel मैक्रो-सक्षम वर्कबुक (*.xlsm), *.xlsm,Excel Workbook (*.xlsx), *.xlsx")यदि परिणाम = असत्य है तो वापस लौटेंActiveWorkbook.SaveAs परिणामअंत उप |