循环遍历 sheet 的函数
Function that loops through the sheet
我正在尝试制作将执行以下操作的 Apps 脚本宏:
- 检查是否在 A 列中勾选了复选标记(单元格值 = TRUE/FALSE)
- 如果勾选,则增加 H 列单元格的值
- 重复直到到达最后一行。
在对文档进行一些深入研究之后,我想到了这个,根据我的理解,它应该可以工作,但既然我在这里问了一个问题,它显然没有。脚本确实没有错误地执行,但它在 sheet.
上没有任何改变
function increment() {
var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var EndRow = ss.getLastRow();
for (var i = 2; i <= EndRow; i++) {
var Cell = ss.getRange(i,8);
var CheckmarkCell = ss.getRange(i,1);
if (CheckmarkCell.getValue() == 'TRUE') {
ss.Cell.setValue(ss.Cell.getValue() + 1);
}
}
}
有人知道吗,这里出了什么问题?
看看这是否有帮助?
function increMentWhenTrue() {
const sh = SpreadsheetApp.getActive().getSheetByName('Sheet1').getDataRange().offset(2, 0)
const values = sh.getValues().map(r => {
r[7] = (r[0]) ? (r[7]) ? r[7]+1 : 1 : r[7];
return r;
})
sh.setValues(values);
}
更改第一行中的 sheet 名称以满足您的要求。
具有 if-else 语句的相同代码
function increMentWhenTrue() {
const sh = SpreadsheetApp.getActive().getSheetByName('Blad1').getDataRange().offset(2, 0)
const values = sh.getValues().map(r => {
if (r[0]) {
if (r[7]) {
r[7] = r[7] + 1;
} else {
r[7] = 1;
}
} else {
r[7] = r[7];
}
return r;
})
sh.setValues(values);
}
我正在尝试制作将执行以下操作的 Apps 脚本宏:
- 检查是否在 A 列中勾选了复选标记(单元格值 = TRUE/FALSE)
- 如果勾选,则增加 H 列单元格的值
- 重复直到到达最后一行。
在对文档进行一些深入研究之后,我想到了这个,根据我的理解,它应该可以工作,但既然我在这里问了一个问题,它显然没有。脚本确实没有错误地执行,但它在 sheet.
上没有任何改变function increment() {
var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var EndRow = ss.getLastRow();
for (var i = 2; i <= EndRow; i++) {
var Cell = ss.getRange(i,8);
var CheckmarkCell = ss.getRange(i,1);
if (CheckmarkCell.getValue() == 'TRUE') {
ss.Cell.setValue(ss.Cell.getValue() + 1);
}
}
}
有人知道吗,这里出了什么问题?
看看这是否有帮助?
function increMentWhenTrue() {
const sh = SpreadsheetApp.getActive().getSheetByName('Sheet1').getDataRange().offset(2, 0)
const values = sh.getValues().map(r => {
r[7] = (r[0]) ? (r[7]) ? r[7]+1 : 1 : r[7];
return r;
})
sh.setValues(values);
}
更改第一行中的 sheet 名称以满足您的要求。
具有 if-else 语句的相同代码
function increMentWhenTrue() {
const sh = SpreadsheetApp.getActive().getSheetByName('Blad1').getDataRange().offset(2, 0)
const values = sh.getValues().map(r => {
if (r[0]) {
if (r[7]) {
r[7] = r[7] + 1;
} else {
r[7] = 1;
}
} else {
r[7] = r[7];
}
return r;
})
sh.setValues(values);
}