Google apps script 将最近更新的单元格从工作表1复制到工作表2

Google apps script 将最近更新的单元格从工作表1复制到工作表2,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我有一个谷歌表,我需要每天更新一些统计数据:每天我在最后一个下面的单元格中键入一个新的数字。我希望能够在同一工作簿的第二页上显示最近的6个条目 因此,我希望表2始终只包含表1中的最后6个单元格,并在我将每天的数字放入表1时进行更新 现在我想我已经做了一半了,onEdit我把特定的单元格从第1页复制到第2页,但是当我每天添加一个新的数字时,这是不好的。我在脚本中指定静态单元格,这是错误的:我需要脚本只拾取最近的6个单元格 在论坛上似乎找不到任何答案,因此感谢您的帮助。到目前为止,我的代码是: fu

我有一个谷歌表,我需要每天更新一些统计数据:每天我在最后一个下面的单元格中键入一个新的数字。我希望能够在同一工作簿的第二页上显示最近的6个条目

因此,我希望表2始终只包含表1中的最后6个单元格,并在我将每天的数字放入表1时进行更新

现在我想我已经做了一半了,onEdit我把特定的单元格从第1页复制到第2页,但是当我每天添加一个新的数字时,这是不好的。我在脚本中指定静态单元格,这是错误的:我需要脚本只拾取最近的6个单元格

在论坛上似乎找不到任何答案,因此感谢您的帮助。到目前为止,我的代码是:

function onEdit() { 
  var ss = SpreadsheetApp.getActiveSpreadsheet(); 
  var target = SpreadsheetApp.openById("15ih18G5WCnmPTwo1SCSj0tvw0ZVyi-hXUP4qrFyQOi4"); 
  var source_sheet = ss.getSheetByName("Sheet1");
  var target_sheet = target.getSheetByName("Most Recent");
  var source_range = source_sheet.getRange("C10:C15");
  var target_range = target_sheet.getRange("B5:B10");
  source_range.copyTo(target_range);
  var last_row = target_sheet.getLastRow();
  target_sheet.insertRowAfter(last_row);
  var target_range = target_sheet.getRange("A"+(last_row+1)+":G"+(last_row+1)); 
}

下面的代码段将Sheet1中每个编辑事件的底部六个单元格从Sheet1复制到Sheet2

 function onEdit() {

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var destination = ss.getSheetByName("Sheet2");
  var origin = SpreadsheetApp.getActiveSheet();

  if (origin.getName() == "Sheet1") { 
    var r = origin.getActiveCell();
    var row = r.getRow();
    var numberOfCol = 3;
    if( row > 1) { 
      var numberOfRows = row >= 7 ? 6 : row - 1;
      var startRow = row >= 7 ? row - numberOfRows + 1 : 2;
      range = origin.getRange(startRow, 3, numberOfRows, numberOfCol);
      range.copyValuesToRange(destination, 1, numberOfCol, 1, numberOfRows);
    };
  };
}

请查看您的代码:r.getRow上的条件至少应大于6,并且您可以反转copyValues中的列和行(1116而不是通常的1161)。r.getRow()引用了两个标题行,而不是实际内容。假设OP不会重新启动,所以行号小于6+标题行数时的情况不包括在内。更新了我的答案,也包括了这个角落的案例。行和列不是反转的-复制工作如预期的那样。谢谢你,很抱歉范围上的混乱,这是我从未使用过的方法…关于所有其他方法使用行-列-列-列-列顺序,因此我的错误。不管怎样,你的代码现在更清晰了,谢谢。