ดูเหมือนว่าทั้งรูปภาพและรายการเมนูที่กำหนดเองไม่ทำงานในแอพชีต Android ในปัจจุบัน ฉันแนะนำให้สร้าง "เมนูฟังก์ชั่น" ภายในสเปรดชีต ตัวอย่างเช่น:
- เซลล์ A1 แจ้งว่า "เลือกฟังก์ชั่น"
- เซลล์ B1 มีกฎการตรวจสอบความถูกต้องของข้อมูลที่ จำกัด เนื้อหาไว้ที่ชื่อของฟังก์ชันที่คุณมี ในตัวอย่างของฉันมันคือ "insertSomething" และ "convertSomething" (อย่าทำเครื่องหมายที่ "แสดงความช่วยเหลือ" ในช่องโต้ตอบการตรวจสอบความถูกต้องของข้อมูลป๊อปอัพ "ช่วย" เป็นสิ่งที่สร้างความรำคาญให้กับมือถือ)
- ฟังก์ชั่นสคริปต์
onEdit
(ทริกเกอร์ง่าย) ทำงานในทุกการแก้ไขตรวจสอบว่าเนื้อหาของ B1 มีการเปลี่ยนแปลงหรือไม่ ถ้าเป็นเช่นนั้นมันจะเรียกใช้ฟังก์ชันที่เหมาะสม
นี่คือรหัสของฉันมีสองฟังก์ชั่นรวมไว้เพื่อการสาธิต:
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');
}
เงื่อนไข/^\w+$/.test(e.value)
เป็นเพียงการตรวจสอบว่าเรามีสตริงที่ไม่ว่างเปล่าและไม่ได้เรียกใช้รหัสที่เป็นอันตรายซึ่งบางคนใส่ไว้ในเซลล์ B1 หลังจากฟังก์ชั่น envoked ด้วยthis[e.value]();
( this
หมายถึงวัตถุทั่วโลกและมีชื่อฟังก์ชั่น) เนื้อหาของ B1 จะถูกล้าง หนึ่งสามารถเลือกที่จะเรียกใช้ฟังก์ชั่นเดียวกันอีกครั้งหรืออีกฟังก์ชั่นหนึ่ง
เพื่อเป็นการพิสูจน์แนวคิดนี่คือภาพหน้าจอจากแอป ภาพหน้าจอ 1: เลือกฟังก์ชั่น
สกรีนช็อต 2: หลังจากใช้งานฟังก์ชันได้แล้ว
อ้างอิง