我需要将复选框重置为 FALSE(未选中),并从定义的工作表中删除所有注释。
还需要一个从 Google 工作表(所有工作表)中删除所有注释的脚本
我尝试组合许多不同的脚本。
https://webapps.stackexchange.com/questions/115076/how-to-run-script-on-multiple-google-sheet-tabs
将复选框重新设置为 false - Google Apps 脚本-- 该脚本的问题在于它将值为 1 的单元格转换为显示“FALSE”的单元格
function ResetCheckBoxesAndClearNotesOnDefinedSheets(){
var tabs = [
'Checkboxes 1',
'Checkboxes 2',
'Checkboxes 3',
'Another Checkbox tab',
'Yet another checkbox tab'
];
//LOOP THROUGH TABS LISTED ABOVE
var ss=SpreadsheetApp.getActiveSpreadsheet();
for (var i = 0; i < tabs.length; i++) {
var sheet=ss.getSheetByName(tabs[i]);
//CLEAR NOTES ON TABS LISTED ABOVE
sheet.clearNotes();
// CLEAR CHECKBOXES ON TABS LISTED ABOVE
var dataRange = sheet.getRange('A:I');
var values = dataRange.getValues();
for (var i = 0; i < values.length; i++) {
for (var j = 0; j < values[i].length; j++) {
if (values[i][j] == true) {
values[i][j] = false; // Modified
}
}
}
dataRange.setValues(values);
}//end of sheets loop.
}
实际结果:
- 它不会循环浏览页面并删除注释。它也不会循环遍历并将选项卡中的所有复选框更改为未选中..有时它会用 FALSE 替换“1”
预期成绩:
- 重置定义工作表上的所有复选框
-清除定义工作表(或整个电子表格)上的所有注释
这个修改怎么样?
修改要点:
- In your script, the variable of
i
is used at both for (var i = 0; i < tabs.length; i++) {
and for (var i = 0; i < values.length; i++) {
.
- 至此,值
i
of for (var i = 0; i < tabs.length; i++) {
并不是每增加1。
- 我认为这是你的问题之一
It does not loop through the pages and delete the notes.
.
- 例如,请修改为
for (var k = 0; k < tabs.length; k++) {var sheet=ss.getSheetByName(tabs[k]);
.
- Equality comparison
==
is used for comparing the boolean.
- 我认为这是另一个问题
it sometimes replaces a "1" with a FALSE
.
- 请修改为严格相等比较
===
.
修改后的脚本:
请修改如下。
From:
for (var i = 0; i < tabs.length; i++) {
var sheet = ss.getSheetByName(tabs[i]);
To:
for (var k = 0; k < tabs.length; k++) {
var sheet = ss.getSheetByName(tabs[k]);
And
From:
if (values[i][j] == true) {
To:
if (values[i][j] === true) {
参考:
如果我误解了你的问题,请告诉我。我想修改它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)