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

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

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

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

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

ऐसे आइटम जो ग्राहक में नहीं बदले

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

ट्रिगर

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

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

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

इवेंट के हिसाब से ट्रिगर

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

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

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

Userforms

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 में काम नहीं करती. इसके लिए कोई दूसरा तरीका नहीं है.