VBA कोड को Macro Converter की मदद से Apps Script में बदलते समय, आपको ये सामान्य समस्याएं आ सकती हैं.
प्रिंट की सुविधा
फ़ाइलें प्रिंट करने वाले VBA एपीआई, Apps Script में अपने-आप बदल जाते हैं. हालांकि, हो सकता है कि ये ओरिजनल VBA एपीआई से अलग तरीके से काम करें. यहां दो उदाहरण दिए गए हैं:
VBA API | Apps Script में व्यवहार |
---|---|
PrintOut | Apps Script में बदलता है, लेकिन Apps Script API, प्रिंटर के बजाय किसी फ़ाइल में प्रिंट करता है. PDF फ़ाइल को मैन्युअल तरीके से प्रिंट किया जा सकता है. |
PrintToFile | Apps Script में बदलता है. PDF फ़ाइल, आपके MyDrive फ़ोल्डर में सेव हो जाती है. |
ऐसे आइटम जिनके लिए कन्वर्ज़न नहीं हुआ है
मैक्रो कन्वर्टर, इन सुविधाओं को नहीं बदलता. इसलिए, इन्हें मैन्युअल तरीके से बदलना होगा:
- कुछ तरह के ट्रिगर
- Userforms
- नाम वाली रेंज के ऐसे टाइप जिनका इस्तेमाल नहीं किया जा सकता
ट्रिगर
मैक्रो कन्वर्टर, दो तरह के ट्रिगर को नहीं बदलता. ये ट्रिगर हैं: कीबोर्ड शॉर्टकट और इवेंट पर आधारित कुछ ट्रिगर. ज़्यादातर मामलों में, इन ट्रिगर को मैन्युअल तरीके से बनाया जा सकता है.
कीबोर्ड शॉर्टकट
कीबोर्ड शॉर्टकट जोड़ने के लिए, फ़ंक्शन को मैक्रो के तौर पर इंपोर्ट करने का तरीका अपनाएं.
इवेंट पर आधारित ट्रिगर
वीबीए कोड के कुछ इवेंट, जैसे कि BeforeClose
या BeforeSave
, Apps Script में उपलब्ध नहीं हैं. हालांकि, आपके पास कोई दूसरा तरीका इस्तेमाल करने का विकल्प है.
BeforeClose
जैसे इवेंट के लिए, कस्टम मेन्यू या बटन बनाया जा सकता है. इस पर क्लिक करके, स्प्रेडशीट बंद करने से पहले ज़रूरी कार्रवाई की जा सकती है.
Google Sheets में हर बदलाव अपने-आप सेव हो जाता है. इसलिए, BeforeSave
जैसे इवेंट के लिए वर्कअराउंड का इस्तेमाल नहीं किया जा सकता.
Userforms
वीबीए में, UserForm, ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई) में मौजूद एक विंडो या डायलॉग बॉक्स होता है. Macro Converter, UserForms को नहीं बदलता है. इन्हें Apps Script में मैन्युअल तरीके से बनाया जा सकता है.
उपयोगकर्ता के लिए फ़ॉर्म वाला डायलॉग बनाना
- अपने कंप्यूटर पर, बदली गई फ़ाइल को Google Sheets में खोलें.
- सबसे ऊपर, एक्सटेंशन > ** Apps Script** पर क्लिक करें.
- एडिटर के बाईं ओर, "फ़ाइलें" के बगल में, कोई फ़ाइल जोड़ें > एचटीएमएल पर क्लिक करें. हमारा सुझाव है कि आप एचटीएमएल फ़ाइल को वही नाम दें जो आपके ओरिजनल वीबीए UserForm का नाम है.
- वे फ़ील्ड और जानकारी जोड़ें जिन्हें आपको अपने फ़ॉर्म में दिखाना है. एचटीएमएल फ़ॉर्म के बारे में ज़्यादा जानने के लिए, W3school.com पर जाएं.
- बाईं ओर, उस Apps Script फ़ाइल (GS फ़ाइल) पर क्लिक करें जिसमें आपका बदला गया कोड है.
- अगर आपके कोड में पहले से ही
onOpen()
ट्रिगर मौजूद है, तो उसे नीचे दिए गए कोड से अपडेट करें. अगर आपके कोड मेंonOpen()
ट्रिगर नहीं है, तो यहां दिया गया कोड जोड़ें.function onOpen() { SpreadsheetApp.getUi() .createMenu('User Form') .addItem('Show Form', 'showForm') .addToUi(); } function showForm() { var html = HtmlService.createHtmlOutputFromFile('userform_module_name') .setWidth(100) .setTitle('Sign-up for Email Updates'); SpreadsheetApp.getUi().showSidebar(html); }
userform_module_name
की जगह, जोड़ी गई एचटीएमएल फ़ाइल का नाम डालें.- सबसे ऊपर, प्रोजेक्ट सेव करें पर क्लिक करें.
- Google शीट पर जाएं और पेज को फिर से लोड करें.
- Google शीट में सबसे ऊपर, User Form > Show Form पर क्लिक करें.
नाम वाली रेंज
Excel में, नाम वाली रेंज, किसी एक सेल या सेल की रेंज को दिए गए नाम होते हैं.
Excel फ़ाइल को Google Sheets में बदलने पर, कुछ तरह की नेम रेंज नहीं बदलेंगी. ऐसा इसलिए, क्योंकि वे काम नहीं करती हैं. यहां दो उदाहरण दिए गए हैं:
नाम वाली ऐसी रेंज जिनका इस्तेमाल नहीं किया जा सकता | ब्यौरा |
---|---|
टेबल | Google Sheets में काम नहीं करता, लेकिन इसका एक विकल्प है.
Sheets में इस नाम वाली रेंज को फिर से बनाने के लिए, नाम वाली एक ऐसी रेंज जोड़ें जो टेबल रेंज के A1 नोटेशन की ओर इशारा करती हो. अपने वीबीए कोड में, नाम वाली ओरिजनल रेंज के लिए वही नाम इस्तेमाल करें, ताकि बदला गया कोड उसे पहचान सके. |
रेंज की सूची | यह सुविधा Google Sheets में उपलब्ध नहीं है. समस्या का कोई समाधान उपलब्ध नहीं है. |
मिलते-जुलते लेख
- Macro Converter ऐड-ऑन के बारे में खास जानकारी
- यह पता लगाना कि VBA मैक्रो काम करते हैं या नहीं
- VBA मैक्रो को Apps Script में बदलना
- बदले गए कोड में मौजूद गड़बड़ियां ठीक करना
- Macro Converter के ट्यूटोरियल देखें
- VBA के साथ काम करने वाले एपीआई की सूची