Dưới đây là danh sách 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ụ:
API VBA | Hành vi trong Apps Script |
---|---|
PrintOut | Chuyển đổi sang Apps Script, nhưng API Apps Script in thành một tệp thay vì máy in. Bạn có thể in tệp PDF theo cách thủ công. |
PrintToFile | Chuyển đổi sang Apps Script. Tệp PDF được lưu trong thư mục MyDrive của bạn. |
Mặt hàng chưa chuyển đổi
Các tính năng sau không được Trình chuyển đổi macro chuyển đổi và cần được chuyển đổi theo cách thủ công:
- Một số loại Trình kích hoạt
- Biểu mẫu người dùng
- Các loại Dải ô được đặt tên không được hỗ trợ
Điều kiện kích hoạt
2 loại điều kiện kích hoạt (phím tắt) và một số điều kiện kích hoạt dựa trên sự kiện sẽ không được Trình chuyển đổi macro chuyển đổi. Trong nhiều trường hợp, bạn có thể tạo các điều kiện 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, như BeforeClose
hoặc BeforeSave
, không 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 cần nhấp vào để thực hiện thao tác 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 không thể giải quyết các sự kiện như
BeforeSave
.
Biểu mẫu người dùng
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 một ứng dụng. Trình chuyển đổi macro không chuyển đổi UserForm. Bạn có thể tạo các mã 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
- Trên máy tính, hãy mở tệp đã chuyển đổi trong Google Trang tính.
- Ở trên cùng, hãy nhấp vào Tiện ích > ** Apps Script**.
- Ở bên trái trình chỉnh sửa bên cạnh tệp "Files", 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 UserForm gốc của VBA.
- Thêm các trường và thông tin 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.
- Ở bên trái, hãy nhấp vào tệp Apps Script (tệp GS) có mã đã chuyển đổi.
- Nếu bạn đã có điều kiện kích hoạt
onOpen()
trong mã, hãy cập nhật điều kiện kích hoạt đó bằng mã dưới đây. Nếu bạn không có điều kiện kích hoạtonOpen()
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); }
- Thay thế
userform_module_name
bằng tên của tệp HTML mà bạn đã thêm. - Ở trên cùng, hãy nhấp vào biểu tượng Lưu dự án .
- Chuyển sang Google Trang tính rồi tải lại trang.
- Ở đầ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 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ì chúng không được hỗ trợ. Dưới đây là hai ví dụ:
Dải ô có tên không được hỗ trợ | Nội dung mô tả |
---|---|
Bảng | Tính năng này không được hỗ trợ trong Google Trang tính, nhưng có một 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 ô đã đặt tên trỏ đến ký hiệu A1 của dải ô trong bảng. Hãy dùng tên giống với dải ô có 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ó cách giải quyết. |
Bài viết liên quan
- Tổng quan về tiện ích bổ sung Trình chuyển đổi macro
- Xác định xem macro VBA có tương thích hay không
- Chuyển đổi macro VBA sang Apps Script
- Sửa lỗi trong mã đã chuyển đổi
- Xem hướng dẫn về Trình chuyển đổi macro
- Danh sách API VBA tương thích