我正在使用的脚本在电子表格中循环,并删除有复选标记的行中的项目。
我需要在某些行上有一个变体。在此示例中,如果选中了F中的复选框,我还需要它删除A-列中第123-137行的内容。
这个脚本是很棒的脚本,在Tanaike的帮助下
我尝试将以下脚本更改为包括:
返回ar.concat([“ B” +(i + 1)+“:D” +(i + 1),“ F” +(i + 1),“ A123:A137”]); >
还有许多其他调整。 我不完全了解此脚本中发生了什么。
function deleteRowContents (col){ // col is the index of the column to check for checkbox being true
var col = 6; // If the column "F" is 6, please set 6.
var sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet4"); // Modified
var data = sh.getDataRange().getValues();
// Below script was modified.
var deleteRanges = data.reduce(function(ar, e, i) {
if (e[col - 1] === true) { // Modified
return ar.concat(["B" + (i + 1) + ":D" + (i + 1), "F" + (i + 1)]);
}
return ar;
}, []);
if (deleteRanges.length > 0) { // or if (deleteRanges.length) { // Added
sh.getRangeList(deleteRanges).clearContent();
}
}
预期结果: 对于指定的第123-137行,如果选中了F中的复选框,则还要清除A列中的Content。
实际结果: 脚本错误,添加指数行数等。
答案 0 :(得分:0)
A123:A137
的值。如果我的理解是正确的,那么该修改如何?
if (deleteRanges.length > 0) { // or if (deleteRanges.length) { // Added
sh.getRangeList(deleteRanges).clearContent();
}
if (deleteRanges.length > 0) {
deleteRanges.push("A123:A137"); // Added
sh.getRangeList(deleteRanges).clearContent();
}
Actual results: Script errors, adding exponential number of rows, etc.
,我无法理解您的情况。因此,如果上述修改对您的情况没有帮助,您是否可以提供示例电子表格来复制错误?通过此操作,我想对其进行修改。A123:A137
的值。
I also need it to delete contents in column A for rows 123-137 if the checkbox in F is checked.
上,我理解得像上面的修改。It should only delete contents in A123 if F123 was checked, for example.
。从上面,我理解如下。
如果我的理解是正确的,那么该修改如何?
return ar.concat(["B" + (i + 1) + ":D" + (i + 1), "F" + (i + 1)]);
if (i + 1 >= 123 && i + 1 <= 137) {
return ar.concat(["B" + (i + 1) + ":D" + (i + 1), "F" + (i + 1), "A" + (i + 1)]);
}
return ar.concat(["B" + (i + 1) + ":D" + (i + 1), "F" + (i + 1)]);