Google脚本.getvalue()无法使用包含公式的单元格

时间:2018-11-14 16:41:42

标签: if-statement google-apps-script google-sheets getvalue

我有一个用于Google表格的google脚本,当第15列显示“ tracking”时,数据行从“ Sheet1”移动到“ Sheet2”,当我键入“ tracking”时,它工作得很好,但我希望该列成为IF方程,例如IF(G:G =“ tracking目前不可用”,“”,“ 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);
}
} 

1 个答案:

答案 0 :(得分:0)

我最近对此有疑问 昨天我花了大约3个小时来调试某些东西,这才是罪魁祸首。

尝试使用r.getDisplayValue()代替r.getValue

我本人还是新手,如果我做错了,请随时纠正我,因为如果有其他原因,我真的很想知道!!!  似乎如果未在单元格中键入值,而是通过诸如= query()之类的公式或类似方法将其放置在其中,则我认为它实际上看不到单元格中存在值。 (我得到的是空值或公式本身) 如果使用getDisplayValue,则“应该”获取您在单元格中实际看到的值。