Mengatasi masalah umum

Masalah umum yang mungkin Anda alami saat mengonversi kode VBA ke Apps Script dengan Pengonversi Makro tercantum di bawah ini.

Pencetakan

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

API VBAPerilaku di Apps Script
PrintOutBerkonversi ke Apps Script, tetapi Apps Script API mencetak ke file, bukan printer. Anda dapat mencetak file PDF secara manual.
PrintToFileDikonversi menjadi Apps Script. File PDF akan disimpan di folder MyDrive Anda.

Item yang belum dikonversi

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 di Apps Script, tetapi Anda mungkin dapat membuat solusi.

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

Karena Google Spreadsheet menyimpan setiap hasil edit secara otomatis, solusi untuk peristiwa seperti BeforeSave tidak dapat dilakukan.

Formulir pengguna

Di VBA, UserForm adalah jendela atau kotak dialog dalam antarmuka pengguna (UI) aplikasi. Pengonversi Makro tidak mengonversi UserForms. Anda dapat membuatnya secara manual di Apps Script.

Membuat dialog formulir pengguna

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

Rentang bernama

Di {i>Excel<i}, rentang bernama adalah nama yang diberikan pada satu sel atau rentang sel.

Saat Anda mengonversi file Excel ke Google Spreadsheet, beberapa jenis rentang bernama tidak akan dikonversi karena tidak didukung. Berikut ini dua contoh:

Rentang bernama tidak didukungDeskripsi
TabelTidak didukung di Google Spreadsheet, tetapi ada solusinya.

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 sehingga kode yang dikonversi dapat mengenalinya.
Daftar rentangTidak didukung di Google Spreadsheet. Tidak ada solusinya.