Я думаю, что причина вашей проблемы в том, что лист не обновляется. В вашем случае, к сожалению, flush()
нельзя использовать. Чтобы избежать этой проблемы, как насчет следующих обходных путей? Пожалуйста, подумайте об этом как об одном из нескольких ответов.
В вашей ситуации, когда лист редактируется, значение, извлекаемое с помощью getDisplayValue()
, обновляется. В этом ответе это используется.
Обходной путь 1:
В этом обходном пути ячейка "B2" перезаписывается на =NOW()
.
Модифицированный скрипт:
var localSheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = localSheet.getSheetByName('Input');
var dateTimeRange = sheet.getRange(2, 2);
var dateTimeValue = dateTimeRange.setFormula("=NOW()").getDisplayValue(); // Modified
localSheet.toast(dateTimeValue);
Обходной путь 2:
В этом обходном пути очищается пустая ячейка. В примере сценария ячейка «B3» предполагает пустую ячейку, и эта ячейка не связана с основными данными. Эта ячейка очищена. Таким образом, пусть Spreadsheet знает, что лист редактируется.
Модифицированный скрипт:
var localSheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = localSheet.getSheetByName('Input');
var dateTimeRange = sheet.getRange(2, 2);
sheet.getRange("B3").clear(); // Added
var dateTimeValue = dateTimeRange.getDisplayValue();
localSheet.toast(dateTimeValue);
- Значение «B2» на листе «Ввод» обновляется, даже если отредактированная ячейка отличается от основного листа. Таким образом, вы также можете использовать
localSheet.getSheetByName("Sheet1").getRange("A1").clear()
вместо sheet.getRange("B3").clear()
.
Примечание:
- Похоже, ваш сценарий не самый последний.
- Является ли
localSheet
var localSheet = SpreadsheetApp.getActiveSpreadsheet()
?
readingValue
и dataTypeValue
не объявлены. В этом ответе используется dateTimeValue
.
- В описанных выше обходных решениях значение обновляется. Но найденное значение показывает значение на 4 или 5 секунд быстрее каждый раз. Об этом я не мог найти, чтобы сделать то же самое значение с "B2". Я прошу прощения за эту ситуацию.
Если это не помогло в вашей ситуации, я прошу прощения.