如何用Apps Script实现点击按钮复制日期工作表并更新C24日期
Google Apps Script 实现工作表复制并更新日期功能
以下是满足需求的Apps Script代码,实现点击按钮复制指定日期格式的工作表、命名为次日日期并更新指定单元格日期:
function copyAndUpdateSheet() { // 获取当前活动工作表(即点击按钮所在的原工作表) const originalSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const originalSheetName = originalSheet.getName(); // 将原表名称的日期字符串转为Date对象(格式为MM/DD/YYYY) const originalDate = new Date(originalSheetName); if (isNaN(originalDate.getTime())) { SpreadsheetApp.getUi().alert("原工作表名称不是有效的MM/DD/YYYY格式日期!"); return; } // 计算次日日期 const nextDate = new Date(originalDate); nextDate.setDate(nextDate.getDate() + 1); // 将次日日期格式化为MM/DD/YYYY字符串,作为新表名称 const newSheetName = Utilities.formatDate(nextDate, SpreadsheetApp.getActiveSpreadsheet().getSpreadsheetTimeZone(), "MM/dd/yyyy"); // 复制原工作表到当前表格末尾 const newSheet = originalSheet.copyTo(SpreadsheetApp.getActiveSpreadsheet()); // 重命名新工作表 newSheet.setName(newSheetName); // 更新新表中C24单元格的日期为次日 const originalC24Date = originalSheet.getRange("C24").getValue(); if (originalC24Date instanceof Date && !isNaN(originalC24Date.getTime())) { const newC24Date = new Date(originalC24Date); newC24Date.setDate(newC24Date.getDate() + 1); newSheet.getRange("C24").setValue(newC24Date); } else { SpreadsheetApp.getUi().alert("原工作表C24单元格不是有效的日期格式!"); } }
使用步骤:
- 打开目标Google表格,点击顶部菜单栏扩展程序 > Apps 脚本,进入脚本编辑器
- 将上述代码粘贴到编辑器中,保存项目(可自定义项目名称)
- 返回表格,点击插入 > 绘图,绘制一个按钮样式的图形(比如带文字“复制并更新”的矩形),完成后点击图形右上角三点,选择分配脚本
- 在弹出框中输入脚本函数名
copyAndUpdateSheet,点击确定
代码说明:
- 先获取原工作表及其名称,校验名称是否为有效日期格式
- 计算次日日期并格式化,确保新表名称格式与原表一致
- 复制工作表后重命名,同时检查原表C24单元格的日期有效性,同步更新为次日日期
- 加入错误提示弹窗,避免因格式问题导致脚本执行失败
内容的提问来源于stack exchange,提问作者nic
相关产品推荐
相关产品推荐

