Có vẻ như hiện tại cả hình ảnh và các mục menu tùy chỉnh đều không hoạt động trong ứng dụng Sheets Android. Tôi đề nghị tạo một "menu chức năng" trong bảng tính. Ví dụ:
- Ô A1 nói "Chọn một chức năng"
- Ô B1 có quy tắc xác thực dữ liệu giới hạn nội dung theo tên của các hàm bạn có. Trong ví dụ của tôi, chúng là "insertS Something" và "convertS Something". (Đừng kiểm tra "hiển thị trợ giúp" trong hộp thoại xác thực dữ liệu, cửa sổ bật lên "trợ giúp" là một điều khó chịu trên thiết bị di động.)
- Một chức năng tập lệnh
onEdit
(kích hoạt đơn giản), chạy trên mọi chỉnh sửa, kiểm tra xem nội dung của B1 có thay đổi hay không. Nếu vậy, nó chạy chức năng thích hợp.
Đây là mã của tôi, với hai chức năng được bao gồm cho mục đích trình diễn:
function onEdit(e) {
if (e.range.getA1Notation() == 'B1') {
if (/^\w+$/.test(e.value)) {
this[e.value]();
e.range.clear();
}
}
}
function insertSomething() {
var sheet = SpreadsheetApp.getActiveSheet();
sheet.getRange(2,3).setValue('inserted something');
}
function convertSomething() {
var sheet = SpreadsheetApp.getActiveSheet();
sheet.getRange(3,3).setValue('converted something');
}
Điều kiện /^\w+$/.test(e.value)
là chỉ để kiểm tra chúng tôi có một chuỗi không trống và không thực thi mã độc mà ai đó đã đặt vào ô B1. Sau khi hàm được liệt kê this[e.value]();
( this
tham chiếu đến đối tượng toàn cục và chứa tên hàm), nội dung của B1 sẽ bị xóa. Người ta có thể chọn chạy lại chức năng tương tự, hoặc một chức năng khác.
Như một bằng chứng về khái niệm, đây là ảnh chụp màn hình từ ứng dụng. Ảnh chụp màn hình 1: chọn một chức năng
Ảnh chụp màn hình 2: sau khi chức năng đã chạy
Người giới thiệu