首页 > 解决方案 > How to Copy Row to Another SPREADSHEET based on Certain Value

问题描述

所以,我有 2 个电子表格(它的“电子表格”而不是“表格”)-> Test1 和 Test2 当 Test1 的第 7 列 =“已完成”时,我想将数据从 Test1 复制到 Test2

但我所能做的就是将数据复制到 Test1 中的 Sheet1 到 Sheet2 (相同的电子表格)。请帮我!

这是我的代码

function onEdit(event) {
  var ss= SpreadsheetApp.getActiveSpreadsheet();
  var s = event.source.getActiveSheet();
  var r = event.source.getActiveRange();
  if(s.getName() == "Main" && r.getColumn() == 7 && r.getValue() == "Completed") {
    var row = r.getRow();
    var numColumns = s.getLastColumn();
    var targetSheet = ss.getSheetByName("Completed");
    var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
    s.getRange(row, 1, 1, numColumns).copyTo(target);
  }
}

标签: javascriptgoogle-apps-scriptgoogle-sheetstriggers

解决方案


onEdit()是一个简单的触发器。它无法打开另一个电子表格:

因为简单的触发器会自动触发,而不需要用户授权,所以它们受到几个限制:

  • 他们可以修改他们绑定的文件,但不能访问其他文件,因为这需要授权。

https://developers.google.com/apps-script/guides/triggers

你需要想出另一种方法来做到这一点。


推荐阅读