अक्सर होने वाली समस्याएं ठीक करना

VBA कोड को Macro Converter की मदद से Apps Script में बदलते समय, आपको ये सामान्य समस्याएं आ सकती हैं.

प्रिंट की सुविधा

फ़ाइलें प्रिंट करने वाले VBA एपीआई, Apps Script में अपने-आप बदल जाते हैं. हालांकि, हो सकता है कि ये ओरिजनल VBA एपीआई से अलग तरीके से काम करें. यहां दो उदाहरण दिए गए हैं:

VBA APIApps Script में व्यवहार
PrintOutApps Script में बदलता है, लेकिन Apps Script API, प्रिंटर के बजाय किसी फ़ाइल में प्रिंट करता है. PDF फ़ाइल को मैन्युअल तरीके से प्रिंट किया जा सकता है.
PrintToFileApps Script में बदलता है. PDF फ़ाइल, आपके MyDrive फ़ोल्डर में सेव हो जाती है.

ऐसे आइटम जिनके लिए कन्वर्ज़न नहीं हुआ है

मैक्रो कन्वर्टर, इन सुविधाओं को नहीं बदलता. इसलिए, इन्हें मैन्युअल तरीके से बदलना होगा:

ट्रिगर

मैक्रो कन्वर्टर, दो तरह के ट्रिगर को नहीं बदलता. ये ट्रिगर हैं: कीबोर्ड शॉर्टकट और इवेंट पर आधारित कुछ ट्रिगर. ज़्यादातर मामलों में, इन ट्रिगर को मैन्युअल तरीके से बनाया जा सकता है.

कीबोर्ड शॉर्टकट

कीबोर्ड शॉर्टकट जोड़ने के लिए, फ़ंक्शन को मैक्रो के तौर पर इंपोर्ट करने का तरीका अपनाएं.

इवेंट पर आधारित ट्रिगर

वीबीए कोड के कुछ इवेंट, जैसे कि BeforeClose या BeforeSave, Apps Script में उपलब्ध नहीं हैं. हालांकि, आपके पास कोई दूसरा तरीका इस्तेमाल करने का विकल्प है.

BeforeClose जैसे इवेंट के लिए, कस्टम मेन्यू या बटन बनाया जा सकता है. इस पर क्लिक करके, स्प्रेडशीट बंद करने से पहले ज़रूरी कार्रवाई की जा सकती है.

Google Sheets में हर बदलाव अपने-आप सेव हो जाता है. इसलिए, BeforeSave जैसे इवेंट के लिए वर्कअराउंड का इस्तेमाल नहीं किया जा सकता.

Userforms

वीबीए में, UserForm, ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई) में मौजूद एक विंडो या डायलॉग बॉक्स होता है. Macro Converter, UserForms को नहीं बदलता है. इन्हें Apps Script में मैन्युअल तरीके से बनाया जा सकता है.

उपयोगकर्ता के लिए फ़ॉर्म वाला डायलॉग बनाना

  1. अपने कंप्यूटर पर, बदली गई फ़ाइल को Google Sheets में खोलें.
  2. सबसे ऊपर, एक्सटेंशन > ** Apps Script** पर क्लिक करें.
  3. एडिटर के बाईं ओर, "फ़ाइलें" के बगल में, कोई फ़ाइल जोड़ें > एचटीएमएल पर क्लिक करें. हमारा सुझाव है कि आप एचटीएमएल फ़ाइल को वही नाम दें जो आपके ओरिजनल वीबीए UserForm का नाम है.
  4. वे फ़ील्ड और जानकारी जोड़ें जिन्हें आपको अपने फ़ॉर्म में दिखाना है. एचटीएमएल फ़ॉर्म के बारे में ज़्यादा जानने के लिए, W3school.com पर जाएं.
  5. बाईं ओर, उस Apps Script फ़ाइल (GS फ़ाइल) पर क्लिक करें जिसमें आपका बदला गया कोड है.
  6. अगर आपके कोड में पहले से ही 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);
    }
        
  7. userform_module_name की जगह, जोड़ी गई एचटीएमएल फ़ाइल का नाम डालें.
  8. सबसे ऊपर, प्रोजेक्ट सेव करें पर क्लिक करें.
  9. Google शीट पर जाएं और पेज को फिर से लोड करें.
  10. Google शीट में सबसे ऊपर, User Form > Show Form पर क्लिक करें.

नाम वाली रेंज

Excel में, नाम वाली रेंज, किसी एक सेल या सेल की रेंज को दिए गए नाम होते हैं.

Excel फ़ाइल को Google Sheets में बदलने पर, कुछ तरह की नेम रेंज नहीं बदलेंगी. ऐसा इसलिए, क्योंकि वे काम नहीं करती हैं. यहां दो उदाहरण दिए गए हैं:

नाम वाली ऐसी रेंज जिनका इस्तेमाल नहीं किया जा सकताब्यौरा
टेबलGoogle Sheets में काम नहीं करता, लेकिन इसका एक विकल्प है.

Sheets में इस नाम वाली रेंज को फिर से बनाने के लिए, नाम वाली एक ऐसी रेंज जोड़ें जो टेबल रेंज के A1 नोटेशन की ओर इशारा करती हो. अपने वीबीए कोड में, नाम वाली ओरिजनल रेंज के लिए वही नाम इस्तेमाल करें, ताकि बदला गया कोड उसे पहचान सके.
रेंज की सूचीयह सुविधा Google Sheets में उपलब्ध नहीं है. समस्या का कोई समाधान उपलब्ध नहीं है.