【发布时间】:2023-03-14 09:01:01
【问题描述】:
我正在尝试在 Google 表格中使用复选框,例如单选按钮。我从https://www.benlcollins.com/apps-script/radio-buttons-in-google-sheets/ 的有用脚本开始,但它只执行行,不幸的是,这对我不起作用。也感谢 Ben 的代码。
因此,使用 Ben 的代码作为起点,我希望取消选中属于某个组的应用的复选框,并且只选中选中的那个。
我将演示设置为多项选择题并回答问题,有两个问题(如下面的屏幕截图所示:
我的代码是:
/**
* onEdit to uncheck checkboxes as required
*/
function onEdit(e) {
// get event object data: sheet name, row number and column number
const sheet = e.range.getSheet();
if(sheet.getName()!='questions'){return} // makes sure we only impact the one sheet we want to adjust
const row = e.range.rowStart;
console.log(row);
if (row < 8) {
var block1 = row;
}
else if(row > 8 && row < 14) {
var block2 = row;
}
switch(block1) {
// case when row 3 is checked
case 1:
sheet.getRange("B4:B7").uncheck();
break;
// case when row 4 is checked
case 2:
sheet.getRangeList(["B3","B5:B7"]).uncheck();
break;
// case when row 5 is checked
case 3:
sheet.getRangeList(["B3:B4","B6:B7"]).uncheck();
break;
// case when row 6 is checked
case 4:
sheet.getRangeList(["B3:B5","B7"]).uncheck();
break;
// case when row 7 is checked
case 5:
sheet.getRange("B3:B6").uncheck();
break;
// cell is outside of rows 3 to 7
default:
return;
}
switch (block2) {
// case when row 10 is checked
case 1:
sheet.getRange("B11:B13").uncheck();
break;
// case when row 11 is checked
case 2:
sheet.getRangeList(["B10","B12:B13"]).uncheck();
break;
// case when row 12 is checked
case 3:
sheet.getRangeList(["B10:B11","B13"]).uncheck();
break;
// case when row 13 is checked
case 4:
sheet.getRangeList(["B10:B12"]).uncheck();
break;
// cell is outside of rows 3 to 7
default:
return;
}
}
请注意,我在工作簿中有多个工作表,因此需要在第 7 行进行测试。
目前唯一能按我预期的方式工作的单元是 B7。
对此我有点头疼,所以寻求一些指导。
【问题讨论】:
-
好的,我已经完成了一部分工作 :-) 我的案例编号在顶部区域。仍在处理第 2 块..
标签: google-apps-script google-sheets checkbox triggers