如何修改Google Apps Script脚本,使其仅针对奇数列触发自动填充日期功能?
如何修改Google Apps Script脚本,使其仅针对奇数列触发自动填充日期功能?
嘿,我来帮你搞定这个问题!你现在的脚本已经限定了3到20列的触发范围,但还没加上奇数列的判断逻辑,其实只需要加个简单的取模运算就能精准实现需求啦。
核心思路很简单:用取模运算符%识别奇数列——任何奇数除以2的余数都是1,所以只要判断当前列数除以2的余数不等于0,就能筛选出奇数列。把这个判断和你原来的列范围条件结合起来就行。
修改后的完整脚本如下:
function onEdit() { var s = SpreadsheetApp.getActiveSheet(); if (s.getName() == "2025 Attendance") { var r = s.getActiveCell(); // 同时满足:在3-20列范围内,并且是奇数列 if (r.getColumn() >= 3 && r.getColumn() <= 20 && r.getColumn() % 2 !== 0) { var nextCell = r.offset(0, 1); if (nextCell.getValue() === '') // 检查相邻单元格是否为空 nextCell.setValue(new Date()); } } }
我给你拆解下关键修改点:
- 新增的
r.getColumn() % 2 !== 0就是奇数列的判断逻辑:%会返回除法的余数,奇数列的数字除以2余数为1,所以不等于0就代表是奇数列。 - 把这个条件和你原来的列范围判断放在同一个
if里,这样只有当编辑的单元格同时落在3-20列之间、且是奇数列时,才会触发后面的日期填充操作。
如果之后你需要调整列的范围,只需要修改>=3和<=20的数值就行,奇数列的判断逻辑完全不用动~
备注:内容来源于stack exchange,提问作者Sean Kilgo
相关产品推荐
相关产品推荐

