单行中的"触发添加脚本"复选框



本质上,我正在尝试添加一个复选框触发器。我在a列中有一个数字。当输入该数字时,复选框将出现在G列中。当选中该复选框时,我希望它触发添加功能,并在a列的同一行中添加1,而不影响其他行,然后取消选中复选框。

到目前为止,这只适用于第1行,而不适用于其他行,我不太清楚为什么。

function onEdit (e) {
checkboxes(e);
addition(e)
}
function checkboxes(e) {
var ss = SpreadsheetApp.getActiveSpreadsheet(); 
ui = SpreadsheetApp.getUi();

var names = ss.getRange("A1:A");
var namesValues = names.getValues();
var checkboxes = ss.getRange("G1:G");
var cbRows = checkboxes.getHeight();
var cbValues = checkboxes.getValues();

var newCBValues = new Array(cbRows); 

for (var row = 0; row < cbRows; row++) {
newCBValues[row] = new Array(0); 
if (namesValues[row] == "" || namesValues[row] == " ") { 
newCBValues[row][0] = " "; 

}else{ 
if (cbValues[row][0] === true) {
newCBValues[row][0] = true; 
}else{ 
newCBValues[row][0] = false; 

}   
}
}
checkboxes.setValues(newCBValues); 

}
function addition(e) {
var ss = SpreadsheetApp.getActiveSheet();
var boxey = ss.getRange("G1:G")
var isAdd = boxey.getValue();
if (isAdd) {
Add();
boxey.setValue(false);
} 

function Add() {
var ss = SpreadsheetApp.getActiveSheet();
var numbers = ss.getRange("A1:A");
numbers.setValue(numbers.getValue()+1);
}

当选中G列中的复选框时,向当前行的A列添加一个

function onEdit(e) {
if (e.range.columnStart == 7 && e.value == "TRUE") {
const sh = e.range.getSheet();
sh.getRange(e.range.rowStart, 1).setValue(sh.getRange(e.range.rowStart, 1).getValue() + 1);
sh.getRange(e.range.rowStart, 7).setValue("FALSE")
}
checkboxes(e);//your current code
addition(e);//your current code
}

最新更新