Giải quyết các vấn đề thường gặp

Dưới đây là các vấn đề thường gặp mà bạn có thể gặp phải khi chuyển đổi mã VBA sang Apps Script bằng Trình chuyển đổi macro.

In ấn

Các API VBA in tệp sẽ tự động được chuyển đổi sang Apps Script, nhưng có thể hoạt động khác với API VBA ban đầu. Dưới đây là hai ví dụ:

VBA APIHành vi trong Apps Script
PrintOutChuyển đổi sang Apps Script, nhưng API Apps Script sẽ in vào tệp thay vì máy in. Bạn có thể in tệp PDF theo cách thủ công.
PrintToFileChuyển đổi sang Apps Script. Tệp PDF được lưu trong thư mục MyDrive.

Các mục chưa chuyển đổi

Trình chuyển đổi macro không chuyển đổi các tính năng sau đây và cần được chuyển đổi theo cách thủ công:

Điều kiện kích hoạt

Trình chuyển đổi macro không chuyển đổi hai loại trình kích hoạt, phím tắt và một số trình kích hoạt dựa trên sự kiện. Trong nhiều trường hợp, bạn có thể tạo các trình kích hoạt này theo cách thủ công.

Phím tắt

Để thêm phím tắt, hãy làm theo các bước để nhập hàm dưới dạng macro.

Trình kích hoạt dựa trên sự kiện

Một số sự kiện từ mã VBA, chẳng hạn như BeforeClose hoặc BeforeSave, không có sự kiện tương đương trong Apps Script, nhưng bạn có thể tạo một giải pháp.

Đối với các sự kiện như BeforeClose, bạn có thể tạo một trình đơn hoặc nút tuỳ chỉnh để nhấp vào nhằm thực hiện hành động cần thực hiện trước khi đóng bảng tính.

Vì Google Trang tính tự động lưu từng nội dung chỉnh sửa, nên bạn không thể áp dụng các giải pháp cho các sự kiện như BeforeSave.

Userforms

Trong VBA, UserForm là một cửa sổ hoặc hộp thoại trong giao diện người dùng (UI) của ứng dụng. Trình chuyển đổi macro không chuyển đổi UserForms. Bạn có thể tạo các biến này theo cách thủ công trong Apps Script.

Tạo hộp thoại biểu mẫu người dùng

  1. Trên máy tính, hãy mở tệp đã chuyển đổi trong Google Trang tính.
  2. Ở trên cùng, hãy nhấp vào Tiện ích > Apps Script**.
  3. Ở bên trái trình chỉnh sửa, bên cạnh mục "Tệp", hãy nhấp vào biểu tượng Thêm tệp > HTML. Bạn nên đặt tên cho tệp HTML giống với tên người dùng VBA UserForm gốc.
  4. Thêm các trường và thông tin mà bạn muốn xuất hiện trong biểu mẫu. Tìm hiểu thêm về biểu mẫu HTML tại W3school.com.
  5. Ở bên trái, hãy nhấp vào tệp Apps Script (tệp GS) có mã đã chuyển đổi.
  6. Nếu bạn đã có trình kích hoạt onOpen() trong mã, hãy cập nhật trình kích hoạt đó bằng mã bên dưới. Nếu bạn không có trình kích hoạt onOpen() trong mã, hãy thêm mã bên dưới.
    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. Thay thế userform_module_name bằng tên của tệp HTML mà bạn đã thêm.
  8. Ở trên cùng, hãy nhấp vào biểu tượng Lưu dự án .
  9. Chuyển sang Google Trang tính rồi tải lại trang.
  10. Ở đầu Google Trang tính, hãy nhấp vào Biểu mẫu người dùng > Hiển thị biểu mẫu.

Dải ô được đặt tên

Trong Excel, dải ô được đặt tên là tên được đặt cho một ô hoặc một dải ô.

Khi bạn chuyển đổi tệp Excel sang Google Trang tính, một số loại dải ô được đặt tên sẽ không được chuyển đổi vì không được hỗ trợ. Dưới đây là hai ví dụ:

Dải ô có tên không được hỗ trợMô tả
BảngKhông được hỗ trợ trong Google Trang tính, nhưng có giải pháp.

Để tạo lại dải ô được đặt tên này trong Trang tính, hãy thêm một dải ô được đặt tên trỏ đến ký hiệu A1 của dải ô bảng. Sử dụng cùng một tên với dải ô được đặt tên ban đầu trong mã VBA để mã đã chuyển đổi nhận ra dải ô đó.
Danh sách dải ôKhông được hỗ trợ trong Google Trang tính. Không có giải pháp.