google-apps-script - 如何让脚本在所有带有复选框的行中运行,但让它在指定的行上做一些稍微不同的事情?
问题描述
我正在使用的脚本循环遍历电子表格并删除有复选标记的行中的项目。
我需要它在某些行上有变化。在此示例中,如果选中 F 中的复选框,我还需要它删除 A 列中第 123-137 行的内容。
这个剧本很棒,得到了田池的极大帮助
如果选中复选框,则使用脚本清除行中的指定单元格并在脚本运行后清除复选框
我尝试将以下脚本更改为包括:
return 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 列中的内容。
实际结果:脚本错误、增加指数行数等。
解决方案
- 当检查“ F”列的复选框时,您要删除其值
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.
,我无法理解你的情况。因此,如果上述修改对您的情况没有用,您能否提供一个示例电子表格来复制错误?通过这个,我想修改它。
编辑:
- 当检查“ F”列的复选框时,您要删除其值
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.
。
- 从
从上面,我理解如下。
- 当检查行是从123到137时,您要删除与该行相对应的列的值。
如果我的理解是正确的,那么这个修改呢?
从:
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)]);
推荐阅读
- scala - 尝试执行 spark-shell 时出现错误“没有这样的文件或目录”
- node.js - 建议我最好的 NodeJs API 验证包
- node.js - mongoose find() 返回模型的属性
- javascript - 以优化方式处理 JSON
- python - required 和 additionalProperties 不适用于 jsonschema 模块 Python
- javascript - 带有逗号分隔项的多个值的 Jquery-ui-autocomplete 不起作用
- python - 循环范围结束后自动销毁变量
- google-photos-api - 尝试使用 Google Photos API 访问视频总是返回 403
- reactjs - 如何解决“操作必须是普通对象。使用自定义中间件进行异步操作。”
- javascript - 为什么我的 Owl carousel javascript 部分工作?