Google Sheets脚本开发:创建按钮批量将指定区域日期加1个月
解决Google表格指定区域日期批量加一个月的脚本方案
下面是修正后的脚本,可实现批量给目标区域的每个日期增加一个月,且支持复制表格后直接使用:
function addOneMonthToDates() { const ss = SpreadsheetApp.getActiveSpreadsheet(); const sheet = ss.getActiveSheet(); // 自动适配当前激活的表格,复制后无需修改表名 // 定义需要处理的所有目标区域 const targetRanges = ['G5:G27', 'T5:T27', 'AG5:AG27', 'AT5:AT27']; targetRanges.forEach(rangeA1 => { const range = sheet.getRange(rangeA1); const values = range.getValues(); // 遍历每个单元格,处理日期加月逻辑 const updatedValues = values.map(row => { const cellValue = row[0]; if (cellValue instanceof Date && !isNaN(cellValue)) { const newDate = new Date(cellValue); newDate.setMonth(newDate.getMonth() + 1); // 处理月末边界问题(比如1月31日加1月自动调整为2月最后一天) if (newDate.getDate() !== cellValue.getDate()) { newDate.setDate(0); } return [newDate]; } // 非日期值保持不变 return row; }); // 将更新后的值写回原区域 range.setValues(updatedValues); range.setNumberFormat("M/D/YY"); }); }
关键细节说明:
- 用
getActiveSheet()替代固定表名,复制表格后无需修改代码,直接运行即可 - 对每个单元格单独处理:仅针对有效日期执行加月操作,非日期值保持原样
- 内置月末边界处理,避免出现类似"3月31日加1月变成4月31日"的无效日期
按钮添加步骤:
- 点击Google表格顶部菜单「插入」>「绘图」
- 绘制按钮形状(或插入图片),保存后关闭绘图窗口
- 点击插入的按钮,选择「分配脚本」,输入脚本名
addOneMonthToDates并确认 - 后续点击该按钮即可批量更新目标区域的日期
内容的提问来源于stack exchange,提问作者Riles
相关产品推荐
相关产品推荐

