Google Script .getvalue () не работает с ячейками с формулой в нем - PullRequest
0 голосов
/ 14 ноября 2018

У меня есть этот скрипт Google для листов Google, который перемещает строки данных из «Лист1» в «Лист2», когда в столбце 15 написано «Отслеживание», и прекрасно работает, когда я набираю «Отслеживание», но мне нужен этот столбец быть уравнением ЕСЛИ что-то вроде ЕСЛИ (G: G = "отслеживание недоступно в настоящее время", "", "отслеживание"). Но код, похоже, не распознает изменение формулы с «» на «отслеживание». Мне нужно изменить getvalue ()? Или есть другой способ обойти эту проблему? Я использовал = query (importrange) в электронной таблице, чтобы скопировать данные с помощью слова триггера, но я действительно хочу, чтобы это было больше в архивной системе и добавляло строку в конец «Sheet2» всякий раз, когда row15 на «sheet1» Спасибо! Вот код:

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 голосов
/ 15 ноября 2018

У меня недавно была проблема с этим Я потратил около 3 часов на отладку чего-то вчера, и это стало причиной.

попробуйте использовать r.getDisplayValue () вместо r.getValue

Я все еще новичок в этом, и не стесняйтесь поправлять меня, если я ошибаюсь, потому что, если есть другая причина, я бы очень хотел знать !!! Кажется, что если значение в ячейке не набрано, а помещено туда с помощью формулы, такой как = query () или подобного метода, я не думаю, что оно действительно видит, что в ячейке есть значение. (Я получил нулевые значения или саму формулу) Если вы используете getDisplayValue, он «должен» получить значение, которое вы фактически видите в ячейке.

...