【发布时间】:2018-09-09 16:04:07
【问题描述】:
我想在电子表格上使用复选框功能;当它在一天结束时打勾时,定义的单元格值将增加并且复选框将重置。
function resetCells() {
var ss = SpreadsheetApp.getActive()
.getSheetByName('Lordaeron');
var cells = ['B2:B1000']
.map(function (c) {
ss.getRange(c)
.setValue("FALSE");
});
}
这会重置带有时间触发器的复选框,我需要添加条件增量。如果 B 列值为 TRUE C 列值将在同一行中递增。
例子:
初始表>>
Checkbox | Value 1 | Value 2 |
-------------------------------
X | 1 | 0 |
V | 2 | 0 |
X | 3 | 1 |
V | 1 | 2 |
X | 2 | 3 |
一天后【想要的结果】>>
Checkbox | Value 1 | Value 2 |
-------------------------------
X | 1 | 0 |
X | 3 | 1 |
X | 3 | 1 |
X | 2 | 3 |
X | 2 | 3 |
https://docs.google.com/spreadsheets/d/1khPC5r2p0b1srsEGka3fl-GAl6nHACaVR0Cf31cqA1o/edit?usp=sharing 这是示例基础表。
提前致谢
===============================================
另外,我询问了如何将上限添加为 100 以不达到某个数字。 感谢 Tanaike,我通过此代码 sn-p 解决了问题:
function resetDaily() {
var ss = SpreadsheetApp.getActive().getSheetByName('Sheet');
var range = ss.getDataRange().offset(1, 0, ss.getLastRow() - 1);
var values = range.getValues().map(function(e) {
if (Number(e[8]) <= 94) {
return e[0] ? [false, e[1], Number(e[2]) + 6, Number(e[3]) + 1] : e;
} else {
return e[0] ? [false, e[1], 100, Number(e[3]) + 1] : e;
}
});
range.setValues(values);
}
【问题讨论】:
-
什么阻止了你?你需要google-apps-script。开始并发布您的代码。
-
在您的脚本中,您似乎尝试从 B 列中检索复选框的值。但在您的示例表中,它似乎被放到了 A 列。如果您的脚本不是最新的,请修改。为了正确理解您的情况,您能否提供一个示例电子表格?当然,请删除您的个人信息。
-
docs.google.com/spreadsheets/d/… 这是我想要实现的简单基础。如果在一天结束时选中复选框。出勤天数将增加+1,作业点数将增加+6,复选框检查将重置。
-
感谢您的回复。我发布了一个答案,因为我认为我可以从您共享的电子表格和评论中了解您的情况。你能确认一下吗?如果我误解了你想要什么,请告诉我。我想修改它。
标签: checkbox google-apps-script google-sheets increment