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

如何在Google Apps Script复制数据后为每行添加日期与固定文本?

问题:为复制到Log工作表的批量数据补充日期与固定文本列

完全不需要重新编写代码,直接把补充A、B列的逻辑整合到现有函数里即可。以下是修改后的完整代码,同时优化了行数不固定的适配问题:

function copyInfo() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var copySheet = ss.getSheetByName("Review");
  var pasteSheet = ss.getSheetByName("Log");

  // 获取源数据范围(改为动态获取有效行数,适配行数不固定的场景)
  var sourceRange = copySheet.getRange(3, 2, copySheet.getLastRow() - 2, 5);
  var sourceValues = sourceRange.getValues();
  var rowCount = sourceValues.length;

  if (rowCount === 0) return; // 如果没有数据,直接退出

  var targetStartRow = pasteSheet.getLastRow() + 1;

  // 1. 复制源数据到C列及以后
  var targetDataRange = pasteSheet.getRange(targetStartRow, 3, rowCount, 5);
  targetDataRange.setValues(sourceValues);

  // 2. 批量填充A列当日日期
  var today = new Date();
  var dateArray = Array(rowCount).fill([today]);
  pasteSheet.getRange(targetStartRow, 1, rowCount, 1).setValues(dateArray);

  // 3. 批量填充B列固定文本"Review"
  var reviewArray = Array(rowCount).fill(["Review"]);
  pasteSheet.getRange(targetStartRow, 2, rowCount, 1).setValues(reviewArray);
}

关键修改说明:

  • 动态适配行数:把原来固定的15行改为copySheet.getLastRow() - 2(因为源数据从第3行开始),自动识别工作表中实际有数据的行数,解决你提到的「行数不固定」问题。
  • 批量填充列数据:用Array.fill()创建对应行数的数组,一次性写入A、B列,比逐行写入更高效。
  • 空数据判断:如果源工作表没有可复制的数据,函数会直接退出,避免无效操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 05:01:19