如何将更新后的 [non-null] 值作为新行插入另一个 sheet?

How do I insert the updated [non-null] value as the new row on another sheet?

10 月 10 日更新22:46太平洋标准时间

您好,我想更新一下问题。 这是我目前的 sheet.

https://docs.google.com/spreadsheets/d/1JHP6SA77FTIfKRpIXCWmY5xSsfrf3SeCKQe7h7o7970/edit?usp=sharing

根据研究,我尝试应用可能对我有帮助的类似脚本,但是,当前脚本似乎不起作用。

这是我当前的 Google 脚本代码。 每次,当 'UpdateTriggerSheet' 中的第 2 行更新为非空值时,我想将更新后的值作为新行插入 'addBook' Sheet.

但似乎不起作用。 我该怎么办?

function onEdit(event) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var s = event.source.getActiveSheet();
  var r = event.source.getActiveRange();

  s.getName() == "UpdateTriggerSheet"
  r.getrow() == 2

  if(isBlank() == False) {
    var row = r.getRow();
    var numColumns = s.getLastColumn();
    var targetSheet = ss.getSheetByName("addBook");
    var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
    s.getRange(row, 1, 1, numColumns).moveTo(target);
  }
}

旧题句

我目前正在使用 google sheet 创建在线书架。 我创建了 sheet,在输入 ISBN 后,它将从日本政府图书馆 API 获得 .json。 https://docs.google.com/spreadsheets/d/107mxVkN047VGiFD6Zti2WhefgjcTrzus8NIljg1g0d8/edit?usp=sharing 我要保留的数据将显示在第 8 行 'GetBookInfo' Sheet。 我目前正在寻找方法,每次第 8 行更新时,我想将更新后的数据添加为 'BookShelf' sheet 中的新行。 我假设我可以使用 onUpdate() 或 onEdit() 来实现这一点,但不确定如何编写代码。

不知道 isBlank() 是否存在于 Javascript 中,但是你总是可以通过像 if (yourVariable) { your code } 这样简单的条件来检查你的变量是否不是 null —在这里阅读更多:Is there a standard function to check for null, undefined, or blank variables in JavaScript?

因此,在这种情况下,您的条件应如下所示:if (s.getName() == "UpdateTriggerSheet" && r.getRow() == 2 && r.getValue()) 才能使函数正常工作(并且不要忘记将几个 getrow() 更改为 getRow()) .