如何修改Google Apps脚本,使Google Sheet新增顶行含当日日期并复制公式?
修改后的脚本(保留公式)
function addNewRow() { var spreadsheet = SpreadsheetApp.openById("1xwF-kM6KvOJYAfsmcDVBgO0yv6ZcFFMFvH33U7SzGtc"); var sheet = spreadsheet.getSheetByName("Attendance"); // 在第2行前插入新行 sheet.insertRowBefore(2); // 复制原第2行(插入后变为第3行)的公式和格式到新第2行 var sourceRange = sheet.getRange(3, 1, 1, sheet.getLastColumn()); var targetRange = sheet.getRange(2, 1, 1, sheet.getLastColumn()); sourceRange.copyTo(targetRange, SpreadsheetApp.CopyPasteType.PASTE_FORMULA, false); sourceRange.copyTo(targetRange, SpreadsheetApp.CopyPasteType.PASTE_FORMAT, false); // 设置当日日期到第3列(C列) var today = new Date(); // 用官方工具格式化日期,适配时区且更稳定 var formattedDate = Utilities.formatDate(today, Session.getScriptTimeZone(), "dd/MM/yyyy"); sheet.getRange(2, 3).setValue(formattedDate); }
关键改动说明
- 新增公式复制逻辑:插入新行后,将原第2行(插入后变为第3行)的所有列公式、格式完整复制到新行,确保带公式的列自动继承原有计算规则
- 优化日期格式化:替换手动拼接日期的方式,用
Utilities.formatDate适配脚本时区,避免格式异常 - 复制范围覆盖所有有效列,不会遗漏任何带公式的单元格
内容的提问来源于stack exchange,提问作者Thomas
相关产品推荐
相关产品推荐

