वीबीए कैलकुलेट - नाउ, वर्कबुक, वर्कशीट, या रेंज

यह ट्यूटोरियल आपको VBA में विभिन्न कैलकुलेट विकल्पों के बारे में सिखाएगा।

डिफ़ॉल्ट रूप से Excel हर बार कार्यपुस्तिका में परिवर्तन किए जाने पर सभी खुली कार्यपुस्तिकाओं की गणना करता है। यह एक गणना ट्री का अनुसरण करके ऐसा करता है जहां यदि सेल A1 को बदला जाता है, तो यह उन सभी कक्षों को अद्यतन करता है जो सेल A1 पर निर्भर हैं और इसी तरह। हालाँकि, इससे आपका VBA कोड चल सकता है अत्यंत धीमी गति से, हर बार जब कोई सेल बदलता है, तो एक्सेल को फिर से गणना करनी चाहिए।

अपनी वीबीए गति बढ़ाने के लिए, आप अक्सर अपनी प्रक्रियाओं की शुरुआत में स्वचालित गणनाओं को अक्षम करना चाहेंगे:

1 आवेदन.गणना = xlमैनुअल

और अंत में इसे फिर से सक्षम करें:

1 आवेदन.गणना = xlस्वचालित

हालांकि, क्या होगा यदि आप अपनी प्रक्रिया के भीतर अपनी सभी कार्यपुस्तिकाओं की गणना करना चाहते हैं? इस ट्यूटोरियल के बाकी हिस्से आपको सिखाएंगे कि क्या करना है।

अभी गणना करें

आप सब कुछ (सभी खुली कार्यपुस्तिकाओं में) की पुन: गणना करने के लिए परिकलित कमांड का उपयोग कर सकते हैं:

1 गणना

यह आमतौर पर उपयोग करने का सबसे अच्छा तरीका है। हालाँकि, आप बेहतर गति के लिए अधिक संकीर्ण गणनाएँ भी कर सकते हैं।

केवल शीट की गणना करें

आप वीबीए को केवल एक विशिष्ट शीट की गणना करने के लिए भी कह सकते हैं।

यह कोड सक्रिय पत्रक की पुनर्गणना करेगा:

1 एक्टिवशीट.गणना करें

यह कोड शीट1 की पुनर्गणना करेगा:

1 शीट्स ("शीट 1")। गणना करें

रेंज की गणना करें

यदि आपको अधिक संकीर्ण गणना की आवश्यकता है, तो आप VBA को केवल कक्षों की श्रेणी की गणना करने के लिए कह सकते हैं:

1 शीट्स ("शीट 1")। रेंज ("ए 1: ए 10")। गणना करें

व्यक्तिगत सूत्र की गणना करें

यह कोड केवल एक व्यक्तिगत सेल सूत्र की गणना करेगा:

1 रेंज ("ए 1")। गणना करें

कार्यपुस्तिका की गणना करें

केवल संपूर्ण कार्यपुस्तिका की गणना करने के लिए कोई VBA विकल्प नहीं है। यदि आपको संपूर्ण कार्यपुस्तिका की गणना करने की आवश्यकता है, तो गणना कमांड का उपयोग करना सबसे अच्छा विकल्प है:

1 गणना

यह सभी खुली कार्यपुस्तिकाओं की गणना करेगा। यदि आप वास्तव में गति के बारे में चिंतित हैं, और एक संपूर्ण कार्यपुस्तिका की गणना करना चाहते हैं, तो आप इस बारे में अधिक चयनात्मक होने में सक्षम हो सकते हैं कि कौन सी कार्यपुस्तिकाएं एक समय में खुली हैं।

कार्यपुस्तिका की गणना करें - ऐसे तरीके जो काम नहीं करते

ऐसी कुछ विधियाँ हैं जिनका उपयोग करने के लिए आप VBA को केवल एक कार्यपुस्तिका की गणना करने के लिए बाध्य करने के लिए लुभा सकते हैं, हालाँकि उनमें से कोई भी ठीक से काम नहीं करेगा।

यह कोड कार्यपुस्तिका में प्रत्येक कार्यपत्रक के माध्यम से लूप करेगा और एक समय में एक शीट की पुनर्गणना करेगा:

1234567 उप पुनर्गणना_कार्यपुस्तिका ()वर्कशीट के रूप में डिम WSवर्कशीट में प्रत्येक ws के लिएws.गणना करेंअगला wsअंत उप

यदि आपकी सभी वर्कशीट "स्व-निहित" हैं, तो यह कोड ठीक काम करेगा, जिसका अर्थ है कि आपकी किसी भी शीट में ऐसी गणना नहीं है जो अन्य शीट्स को संदर्भित करती है।

हालाँकि, यदि आपकी वर्कशीट अन्य शीट्स को संदर्भित करती है, तो हो सकता है कि आपकी गणना ठीक से अपडेट न हो। उदाहरण के लिए, यदि आप पत्रक2 से पहले पत्रक1 की गणना करते हैं, लेकिन पत्रक1 के सूत्र पत्रक2 में की गई गणनाओं पर निर्भर करते हैं तो आपके सूत्रों में सबसे अद्यतित मान नहीं होंगे।

आप सभी शीटों को एक साथ चुनने और सक्रियशीट की गणना करने का भी प्रयास कर सकते हैं:

12 यह कार्यपुस्तिका.पत्रक.चुनेंएक्टिवशीट.गणना करें

हालाँकि, यह वही समस्या पैदा करेगा।

आप साइट के विकास में मदद मिलेगी, अपने दोस्तों के साथ साझा करने पेज

wave wave wave wave wave