我有一张谷歌表,我需要每天更新一些统计数据:每天我在最后一个下面的单元格中键入一个新数字。我希望能够在同一工作簿的第二张纸上显示,只显示最近的6个条目。
所以我希望Sheet 2始终只包含Sheet 1中的最后6个单元格,并且每当我将每一天的数字放入Sheet 1时它都会更新。
目前我认为我已经有一半了,在编辑中我将特定单元格从表格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));
}
答案 0 :(得分:0)
下面的代码片段在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);
};
};
}