Mengatasi masalah umum

Panduan ini mencantumkan masalah umum yang mungkin Anda alami saat mengonversi kode Visual Basic for Applications (VBA) ke Apps Script menggunakan Macro Converter.

API VBA yang mencetak file otomatis dikonversi ke Apps Script, tetapi mungkin berperilaku berbeda dengan API VBA asli. Tabel berikut menunjukkan dua contoh:

VBA APIPerilaku di Apps Script
PrintOutDikonversi ke Apps Script, tetapi Apps Script API mencetak ke file, bukan ke printer. Mencetak file PDF secara manual.
PrintToFileDikonversi ke Apps Script. File PDF disimpan di folder MyDrive Anda.

Item yang tidak berkonversi

Fitur berikut tidak dikonversi oleh Pengonversi Makro dan perlu dikonversi secara manual:

Pemicu

Dua jenis pemicu, pintasan keyboard dan beberapa pemicu berbasis peristiwa, tidak dikonversi oleh Pengonversi Makro. Dalam banyak kasus, Anda dapat membuat pemicu ini secara manual.

Pintasan keyboard

Untuk menambahkan pintasan keyboard, ikuti langkah-langkah untuk mengimpor fungsi sebagai makro.

Pemicu berbasis peristiwa

Beberapa peristiwa dari kode VBA, seperti BeforeClose atau BeforeSave, tidak memiliki padanan dalam Apps Script, tetapi Anda mungkin dapat membuat solusi.

Untuk peristiwa seperti BeforeClose, Anda dapat membuat menu atau tombol kustom untuk diklik guna melakukan tindakan yang perlu dilakukan sebelum Anda menutup spreadsheet.

Solusi untuk peristiwa BeforeSave tidak memungkinkan karena Google Spreadsheet otomatis menyimpan perubahan saat Anda melakukannya.

Userforms

Di VBA, UserForm adalah jendela atau dialog di antarmuka pengguna (UI) aplikasi. Macro Converter tidak mengonversi UserForm. Buat secara manual di Apps Script.

Membuat dialog formulir pengguna

  1. Di komputer Anda, buka file yang dikonversi di Spreadsheet.
  2. Di bagian atas, klik Ekstensi > ** Apps Script**.
  3. Di sebelah kiri editor di samping "File", klik Tambahkan file > HTML. Sebaiknya beri file HTML nama yang sama dengan UserForm VBA asli Anda.
  4. Tambahkan kolom dan informasi yang ingin Anda tampilkan dalam formulir. Pelajari lebih lanjut formulir HTML di W3school.com.
  5. Di sebelah kiri, klik file Apps Script (file GS) yang berisi kode yang dikonversi.
  6. Jika Anda sudah memiliki pemicu onOpen dalam kode, perbarui dengan kode berikut. Jika Anda tidak memiliki pemicu onOpen dalam kode, tambahkan kode berikut.
    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. Ganti userform_module_name dengan nama file HTML yang Anda tambahkan.
  8. Di bagian atas, klik Simpan project .
  9. Beralih ke Spreadsheet Google, lalu muat ulang halaman.
  10. Di bagian atas Spreadsheet Google, klik Formulir Pengguna > Tampilkan Formulir.

Rentang bernama

Di Excel, rentang bernama adalah nama yang diberikan ke satu sel atau rentang sel.

Saat Anda mengonversi file Excel ke Spreadsheet, jenis rentang bernama tertentu tidak dikonversi karena tidak didukung. Tabel berikut mencantumkan contoh umum:

Rentang bernama yang tidak didukungDeskripsi
TabelTidak didukung di Spreadsheet, tetapi ada solusi.

Untuk membuat ulang rentang bernama ini di Spreadsheet, tambahkan rentang bernama yang mengarah ke notasi A1 rentang tabel. Gunakan nama yang sama dengan rentang bernama asli dalam kode VBA Anda agar kode yang dikonversi dapat mengenalinya.
Daftar rentangTidak didukung di Spreadsheet. Tidak ada solusinya.