【发布时间】:2018-11-14 16:41:41
【问题描述】:
我有这个用于 google 表格的 google 脚本,当第 15 列显示“tracking”时,它将数据行从“Sheet1”移动到“Sheet2”,当我输入“tracking”时它工作得非常好,但我想要那个列成为一个 IF 方程,例如 IF(G:G="tracking not available at this time","","tracking")。但是代码似乎无法识别从“”到“跟踪”的公式更改。我需要更改 getvalue() 吗?或者这个问题有不同的解决方法吗?我已经使用 =query(importrange) 与电子表格一起使用触发词复制数据,但我真的希望这更像是一个存档系统,并在“sheet1”上的 row15 时在“Sheet2”底部添加一行谢谢!代码如下:
function onEdit(event) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = event.source.getActiveSheet();
var r = event.source.getActiveRange();
if(s.getName() == "Sheet1" && r.getColumn() == 14 && r.getValue() == "tracking") {
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName("Sheet2");
if(targetSheet.getLastRow() == targetSheet.getMaxRows()) {
targetSheet.insertRowsAfter(targetSheet.getLastRow(), 20);
}
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
s.getRange(row, 1, 1, numColumns).moveTo(target);
s.deleteRow(row);
}
}
【问题讨论】:
-
这对于 Google 表格来说是个难题。 getValue() 只获取单元格中的值,它知道公式不是值。同样 getFormulas() 将公式作为字符串获取,但如果单元格仅包含一个值,则该字符串为空白。现在的难题是您不能用公式数组覆盖值数组并使用 setValues()。您几乎需要遍历公式数组并将公式(如果存在于该单元格中)作为字符串放入值数组中,然后使用 setValues()。
-
@TheWizEd 是的,这正是我遇到的。感谢您的回复。
-
@ThWizEd 这不是 op 要求的。
标签: if-statement google-apps-script google-sheets getvalue