【问题标题】:Can I limit an onEdit function to a checkbox cell in Google Sheets?我可以将 onEdit 函数限制为 Google 表格中的复选框单元格吗?
【发布时间】:2019-10-27 17:02:38
【问题描述】:
我正在 Google 表格中创建一个电子表格来收集和分析各个输入。这个想法是让用户在第一张表上输入数据,点击提交按钮,然后将其收集到另一张表中,同时清除第一张表输入。我用一个按钮想通了,但后来我才知道按钮在移动设备上不起作用,这将是主要的使用方法。
所以,我想知道是否有办法将“onEdit”功能限制为单个复选框。即我想在不关闭任何功能的情况下填写信息,然后当用户准备好时,单击复选框发送信息,然后将复选框设置为 false,并重置输入单元格。
这可能吗?
【问题讨论】:
标签:
function
google-apps-script
checkbox
google-sheets
google-apps-script-editor
【解决方案1】:
你可以使用这样的东西:
function onEdit(e) {
if(e.range.getSheet().getName()=='Sheet8') {
if(e.range.getA1Notation()=='A1' && e.value=="TRUE") {
SpreadsheetApp.getUi().alert('You Clicked A1. You have less than 30 seconds to run a function here');
e.range.setValue("FALSE");
//you less than 30 seconds to run a function here
}
if(e.range.getA1Notation()=='A2' && e.value=="TRUE") {
SpreadsheetApp.getUi().alert('You Clicked A2. You have less than 30 seconds to run a function here');
e.range.setValue("FALSE");
//you less than 30 seconds to run a function here
}
if(e.range.getA1Notation()=='A3' && e.value=="TRUE") {
SpreadsheetApp.getUi().alert('You Clicked A3. You have less than 30 seconds to run a function here.');
e.range.setValue("FALSE");
//you less than 30 seconds to run a function here
}
}else{
return;
}
}
要使用它,您需要在 A1、A2 和 A3 中插入复选框。您可以按代码所示添加功能,但 onEdit(e) 必须在 30 秒内完成。
就个人而言,我会使用自定义对话框来完成您正在做的事情。这样,我有更多的选择,因为我拥有任何 html 页面的所有事件,根本不需要使用 onEdit()。