请求修改Google Apps Script 适配Day1至Day31多工作表运行
适配Google Apps Script到Day 2至Day 31工作表的解决方案
嘿,作为编程新手能想到扩展代码的需求真不错!我帮你把原来只在Day 1运行的代码改成了能适配Day 2到Day 31所有工作表的版本,规则和原代码完全一致,还会给你拆解改动点,方便你理解~
修改后的完整代码
function onEdit(e) { var s = SpreadsheetApp.getActiveSheet(); var sheetName = s.getName(); // 匹配工作表名称是否为Day + 2-31的格式 var dayMatch = sheetName.match(/^Day (\d+)$/); if (dayMatch) { var dayNumber = parseInt(dayMatch[1]); // 判断数字是否在2到31之间 if (dayNumber >= 2 && dayNumber <= 31) { var r = s.getActiveCell(); // 检查是否在W列(第23列) if (r.getColumn() == 23) { var nextCell = r.offset(0, 6); // 若相邻单元格为空则设置当前日期 if (nextCell.getValue() === '') { nextCell.setValue(new Date()); } } } } }
关键改动说明
- 工作表名称判断逻辑优化:原来的代码只判断是否是
Day 1,现在用正则表达式/^Day (\d+)$/匹配所有以Day开头、后面跟数字的工作表名称,再提取数字判断是否在2到31的范围内,这样就覆盖了Day 2到Day 31的所有情况。 - 保留原核心逻辑:检查活动单元格是否在W列(第23列)、判断右侧第6列单元格是否为空、为空则写入当前日期的逻辑完全保留,确保和原代码执行规则一致。
小提示
如果你的原代码是绑定了onEdit触发器的,直接替换成这段代码就可以啦,不需要额外修改触发器设置,它会自动在符合条件的工作表上生效~
内容的提问来源于stack exchange,提问作者Gentry McColm
相关产品推荐
相关产品推荐

