Hướng dẫn này liệt kê những vấn đề thường gặp mà bạn có thể gặp phải khi chuyển đổi mã Visual Basic for Applications (VBA) sang Apps Script bằng Trình chuyển đổi macro.
In tệp
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. Bảng sau đây cho thấy 2 ví dụ:
| API VBA | Hành vi trong Apps Script |
|---|---|
PrintOut | Chuyển đổi sang Apps Script, nhưng API Apps Script sẽ in ra một tệp thay vì máy in. 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 Drive của tôi. |
Mục không được chuyển đổi
Trình chuyển đổi macro không chuyển đổi các tính năng sau đây và bạn cần chuyển đổi theo cách thủ công:
- Một số loại Điều kiện 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
Trình chuyển đổi macro không chuyển đổi 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. 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.
Điều kiện 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ó các sự kiện tương đương trong Apps Script, nhưng bạn có thể tạo một giải pháp thay thế.
Đối với các sự kiện như BeforeClose, bạn có thể tạo một nút hoặc trình đơn tuỳ chỉnh để nhấp vào nhằm thực hiện hành động cần diễn ra trước khi bạn đóng bảng tính.
Không thể có giải pháp thay thế cho sự kiện BeforeSave vì Google Trang tính sẽ tự động lưu các thay đổi khi bạn thực hiện.
Biểu mẫu người dùng
Trong VBA, a 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 UserForm. Hãy tạo các biểu mẫu 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 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", 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 như UserForm VBA ban đầu.
- 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.
- Ở 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
onOpentrong mã, hãy cập nhật điều kiện kích hoạt đó bằng mã sau. Nếu bạn không có điều kiện kích hoạtonOpentrong mã, hãy thêm mã sau.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_namebằ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 và 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 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ợ. Bảng sau đây liệt kê các ví dụ thường gặp:
| Dải ô được đặt tên không được hỗ trợ | Mô tả |
|---|---|
| Bảng | Không được hỗ trợ trong Trang tính, nhưng có giải pháp thay thế.
Để 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 tên với dải ô được đặt tên ban đầu trong mã VBA để mã đã chuyển đổi nhận dạng được dải ô đó. |
| Danh sách dải ô | Không được hỗ trợ trong Trang tính. Không có giải pháp thay thế. |
Bài viết liên quan
- Tổng quan về tiện ích bổ sung Trình chuyển đổi macro Google Workspace
- Xác định xem macro VBA có tương thích hay không
- Chuyển đổi macro VBA sang Apps Script
- Khắc phục lỗi trong mã đã chuyển đổi
- Xem hướng dẫn về Trình chuyển đổi macro
- Danh sách các API VBA tương thích