如何将更新后的 [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()
) .
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()
) .