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

मैक्रो कन्वर्टर की मदद से, अपने VBA कोड को Apps Script में बदलते समय, आपको आम तौर पर होने वाली समस्याओं का सामना करना पड़ सकता है. इन समस्याओं की सूची नीचे दी गई है.

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

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

वीबीए एपीआईApps Script में व्यवहार
PrintOutफ़ॉर्मैट को Apps Script में बदलता है, लेकिन Apps Script एपीआई, प्रिंटर के बजाय फ़ाइल को प्रिंट करता है. PDF फ़ाइल को मैन्युअल तरीके से प्रिंट किया जा सकता है.
PrintToFileऐप्लिकेशन को Apps Script में बदलता है. PDF फ़ाइल आपके MyDrive फ़ोल्डर में सेव हो जाती है.

ऐसे आइटम जिन्हें बदला नहीं गया

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

ट्रिगर

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

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

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

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

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

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

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

उपयोगकर्ता फ़ॉर्म

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

उपयोगकर्ता फ़ॉर्म का डायलॉग बॉक्स बनाएं

  1. अपने कंप्यूटर पर, जिस फ़ाइल का फ़ॉर्मैट बदला गया है उसे Google Sheets में खोलें.
  2. सबसे ऊपर, एक्सटेंशन > ** Apps Script** पर क्लिक करें.
  3. एडिटर में बाईं ओर, "फ़ाइलें" के बगल में, फ़ाइल जोड़ें > एचटीएमएल पर क्लिक करें. हमारा सुझाव है कि आप एचटीएमएल फ़ाइल को वही नाम दें जो आपके ओरिजनल VBA 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 शीट में सबसे ऊपर, उपयोगकर्ता फ़ॉर्म > फ़ॉर्म दिखाएं पर क्लिक करें.

नाम वाली रेंज

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

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

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

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