You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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日"的无效日期

按钮添加步骤:

  1. 点击Google表格顶部菜单「插入」>「绘图」
  2. 绘制按钮形状(或插入图片),保存后关闭绘图窗口
  3. 点击插入的按钮,选择「分配脚本」,输入脚本名addOneMonthToDates并确认
  4. 后续点击该按钮即可批量更新目标区域的日期

内容的提问来源于stack exchange,提问作者Riles

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 04:06:12