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

如何修复并整合Google Apps Script实现Google Sheets数据日志自动追加

Google Sheets 操作历史记录脚本整合方案

需求:当Source工作表的A5:F5区域单元格发生变更时,将该区域的数据追加到History工作表中。
问题:现有三个可独立运行的脚本(负责复制数据的copyRowsWithCopyTo、触发操作的onEdit、追加数据的append),无法整合使用,且原onEdit函数存在逻辑问题。

原独立脚本

copyRowsWithCopyTo(复制数据)

function copyRowsWithCopyTo() {
  let spreadSheet = SpreadsheetApp.getActiveSpreadsheet();
  let sourceSheet = spreadSheet.getSheetByName('Source');

  let sourceRange = sourceSheet.getDataRange();
  let targetSheet = spreadSheet.getSheetByName('History');

  sourceRange.copyTo(targetSheet.getRange(1, 1));
}

原onEdit(触发操作)

function onEdit(e) {
  var range = e.range;
  var spreadSheet = e.source;
  var sheetName = spreadSheet.getActiveSheet().getName();
  var column = range.getColumn();
  var row = range.getRow();
  var inputValue = e.value;
  if (
    e.source.getSheetName() == 'Source' &&
    e.range.columnStart == 1 &&
    e.range.columnEnd == 6 &&
    e.range.rowStart >= 5 &&
    e.range.rowEnd <= 5
  ) 
}

原append(追加数据)

function append() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  
  // Collect the data
  const sourceSheet = ss.getSheetByName('Source');
  const sourceRange = sourceSheet.getRange('A5:F5');
  const sourceVals = sourceRange.getValues().flat();

  //Append the data
  const destinationSheet = ss.getSheetByName('History');
  destinationSheet.appendRow(sourceVals);
}

正确整合后的onEdit脚本

function onEdit(e) {
  var range = e.range;
  var sheet = range.getSheet();
  if (sheet.getName() == 'Source' && range.getRow() >= 5 && range.getRow() <= 5 && range.getColumn() >= 1 && range.getColumn() <= 6) {
    var values = sheet.getRange("A5:F5").getValues()[0];
    var historySheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('History');
    historySheet.appendRow(values);
  }
}

该脚本将触发条件判断与数据追加逻辑合并,当检测到Source工作表的A5:F5区域内任意单元格被编辑时,自动读取该区域整行数据并追加到History工作表的末尾,无需单独调用其他脚本即可完成需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 12:20:00