每次更新另一个值时将值粘贴到新单元格中?

Pasting a value into a new cell each time another is updated?

我希望每周有 2 个单元格更新它们的值。每次这些单元格更新它们的值时,我希望它们也被打印到不同 sheet 上的另外两个单元格上。每周,打印它们的这些单元格都会向下移动一个。例如第 1 周,这两个单元格打印在 A1 和 B1 中。第 2 周它们打印在 A2 和 B2 中,依此类推。

我知道如何在 Excel 中执行此操作,但不知道如何将其更改为 Google 表格/脚本。

假设:

  1. 您的新输入在 input!A1input!B1 中;和
  2. 您的输出将在 output!Aoutput!B 内完成。

您可以通过单击菜单上的工具并进入脚本编辑器来编写脚本。

然后写这个函数:

function writeData() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var input = ss.getSheetByName("input")
    .getRange(1, 1, 1, 2)
    .getValues();
  var outputSheet = ss.getSheetByName("output");
  var numRows = outputSheet.getLastRow();

  outputSheet.getRange(numRows + 1, 1)
    .setValue(input[0][0]);
  outputSheet.getRange(numRows + 1, 2)
    .setValue(input[0][1]);
}

接下来,设置触发器。在脚本编辑器中,在资源下,select 当前项目的触发器,然后设置您的触发器。如果您希望它每周 运行,请使用时间驱动的触发器。您还可以在每次编辑时将电子表格驱动的触发器设置为 运行。保存一切。

如果您不想使用自动触发器,可以通过在电子表格的菜单栏上添加一个项目来执行writeData()功能:

function onOpen() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var menuEntries = [];
  menuEntries.push({name: "Write data", functionName: "writeData"});
  ss.addMenu("Custom functions", menuEntries);
}

保存,如果您刷新电子表格,您将在菜单栏上看到一个新项目。