সাধারণ সমস্যা সমাধান করুন

এই নির্দেশিকায় ম্যাক্রো কনভার্টার ব্যবহার করে ভিজ্যুয়াল বেসিক ফর অ্যাপ্লিকেশনস (VBA) কোডকে অ্যাপস স্ক্রিপ্টে রূপান্তর করার সময় আপনি যে সাধারণ সমস্যাগুলির সম্মুখীন হতে পারেন, তার একটি তালিকা দেওয়া হয়েছে।

ফাইল প্রিন্ট করে এমন VBA API-গুলো স্বয়ংক্রিয়ভাবে অ্যাপস স্ক্রিপ্টে রূপান্তরিত হয়, কিন্তু এগুলোর আচরণ মূল VBA API-এর থেকে ভিন্ন হতে পারে। নিচের সারণিতে দুটি উদাহরণ দেখানো হলো:

ভিবিএ এপিআই অ্যাপস স্ক্রিপ্টে আচরণ
PrintOut অ্যাপস স্ক্রিপ্টে রূপান্তরিত হয়, কিন্তু অ্যাপস স্ক্রিপ্ট এপিআই প্রিন্টারের পরিবর্তে একটি ফাইলে প্রিন্ট করে। পিডিএফ ফাইলটি ম্যানুয়ালি প্রিন্ট করুন।
PrintToFile অ্যাপস স্ক্রিপ্টে রূপান্তরিত হয়। পিডিএফ ফাইলটি আপনার MyDrive ফোল্ডারে সংরক্ষিত হয়।

অপরিবর্তিত আইটেম

নিম্নলিখিত বৈশিষ্ট্যগুলি ম্যাক্রো কনভার্টার দ্বারা রূপান্তরিত হয় না এবং সেগুলিকে ম্যানুয়ালি রূপান্তর করতে হবে:

ট্রিগার

দুই ধরনের ট্রিগার—কিবোর্ড শর্টকাট এবং কিছু ইভেন্ট-ভিত্তিক ট্রিগার—ম্যাক্রো কনভার্টার দ্বারা রূপান্তরিত হয় না। অনেক ক্ষেত্রে, আপনি এই ট্রিগারগুলো ম্যানুয়ালি তৈরি করতে পারেন।

কীবোর্ড শর্টকাট

কিবোর্ড শর্টকাট যোগ করতে, ফাংশনগুলোকে ম্যাক্রো হিসেবে ইম্পোর্ট করার ধাপগুলো অনুসরণ করুন।

ইভেন্ট-ভিত্তিক ট্রিগার

VBA কোডের কিছু ইভেন্ট, যেমন BeforeClose বা BeforeSave , Apps Script-এ সমতুল্য কোনো ব্যবস্থা নেই, কিন্তু আপনি হয়তো একটি বিকল্প উপায় তৈরি করতে পারবেন।

BeforeClose মতো ইভেন্টগুলোর জন্য, স্প্রেডশিটটি বন্ধ করার আগে প্রয়োজনীয় কাজটি সম্পাদন করতে আপনি একটি কাস্টম মেনু বা বাটন তৈরি করতে পারেন।

BeforeSave ইভেন্টের জন্য কোনো বিকল্প সমাধান সম্ভব নয়, কারণ গুগল শিটস আপনার করা পরিবর্তনগুলো সাথে সাথেই স্বয়ংক্রিয়ভাবে সংরক্ষণ করে।

ব্যবহারকারী ফর্ম

VBA-তে, ইউজারফর্ম হলো কোনো অ্যাপ্লিকেশনের ইউজার ইন্টারফেস (UI)-এর একটি উইন্ডো বা ডায়ালগ। ম্যাক্রো কনভার্টার ইউজারফর্ম রূপান্তর করে না। অ্যাপস স্ক্রিপ্টে এগুলি ম্যানুয়ালি তৈরি করুন।

একটি ব্যবহারকারী ফর্ম ডায়ালগ তৈরি করুন

  1. আপনার কম্পিউটারে, Sheets- এ রূপান্তরিত ফাইলটি খুলুন।
  2. উপরে, এক্সটেনশন > অ্যাপস স্ক্রিপ্ট-এ ক্লিক করুন।
  3. এডিটরের বাম দিকে 'Files'-এর পাশে, a file > HTML-এ ক্লিক করুন। আমরা পরামর্শ দিচ্ছি যে আপনি HTML ফাইলটির নাম আপনার মূল VBA UserForm-এর নামের মতোই রাখুন।
  4. আপনার ফর্মে যে ফিল্ড ও তথ্যগুলো দেখাতে চান, তা যোগ করুন। HTML ফর্ম সম্পর্কে আরও জানতে W3school.com দেখুন।
  5. বাম দিকে, আপনার রূপান্তরিত কোড থাকা অ্যাপস স্ক্রিপ্ট ফাইলটিতে (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. আপনার যোগ করা HTML ফাইলের নামটি দিয়ে userform_module_name প্রতিস্থাপন করুন।
  8. উপরে, ' project' এ ক্লিক করুন।
  9. গুগল শিটে যান এবং পৃষ্ঠাটি পুনরায় লোড করুন।
  10. গুগল শিটের শীর্ষে, ইউজার ফর্ম > শো ফর্ম-এ ক্লিক করুন।

নামযুক্ত পরিসর

এক্সেলে, নেমড রেঞ্জ হলো একটি একক সেল বা একাধিক সেলের সমষ্টিকে দেওয়া নাম।

যখন আপনি এক্সেল ফাইলগুলিকে শীটে রূপান্তর করেন, তখন কিছু নির্দিষ্ট নেমড রেঞ্জ টাইপ রূপান্তরিত হয় না কারণ সেগুলি অসমর্থিত। নিম্নলিখিত সারণিতে সাধারণ কিছু উদাহরণ তালিকাভুক্ত করা হলো:

অসমর্থিত নামযুক্ত পরিসর বর্ণনা
টেবিল শীটসে সমর্থিত নয়, তবে এর একটি বিকল্প উপায় আছে।

শীটসে এই নেমড রেঞ্জটি পুনরায় তৈরি করতে, টেবিল রেঞ্জের A1 নোটেশনকে নির্দেশ করে এমন একটি নেমড রেঞ্জ যোগ করুন। আপনার VBA কোডে মূল নেমড রেঞ্জের মতোই একই নাম ব্যবহার করুন, যাতে রূপান্তরিত কোডটি এটিকে চিনতে পারে।
পরিসরের তালিকা শীটসে সমর্থিত নয়। এর কোনো বিকল্প উপায় নেই।