Я не уверен, будет ли это работать для вас, но если вы проверяете 1 точную ячейку, оператор if, проверяющий, распознан ли ввод перед запуском скрипта, будет в порядке:
function checkwritten(){
var app = SpreadsheetApp;
var ss = app.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var ui = SpreadsheetApp.getUi();
var InterestCell = sheet.getRange("A1");
var cellOfInterest = sheet.getRange("A1").getValue();
if (InterestCell.isBlank()) {
Logger.log("missing value");
ui.alert('There are missing values');
}
else {
Logger.log(cellOfInterest);
/*
enter code here
*/
}
}
Другие предлагаемые решения, такие как создание кнопки в качестве опции меню или отключение кнопки до заполнения всей записи, также являются жизнеспособными.
Если вы проверяете диапазон, возможны следующие две опции:
Вариант 1: создайте ячейку с контрбланком на вашем листе, и это будет интересующая ячейка.
function checkwritten(){
var app = SpreadsheetApp;
var ss = app.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var InterestCell = sheet.getRange("A6");
var cellOfInterest = sheet.getRange("A6").getValue();
if (cellOfInterest == 0) {
Logger.log("success");
}
else {
Logger.log(cellOfInterest);
/*
enter code here
*/
}
}
Вариант 2 - разрешите сценарию убедиться, что до этого не было пустых ячеек работает.
function checkwritten(){
var app = SpreadsheetApp;
var ss = app.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var CellCheckCount = 100; // 1 above the total number of rows to check
var ui = SpreadsheetApp.getUi();
var BlankCellCount = 0;
var CheckCell = null;
for (var i = 1; i < CellCheckCount; i++){
CheckCell = sheet.getRange(i,1); //currently set to check column 1 up till 100-1 row
if (CheckCell.isBlank()){
BlankCellCount++;
}
else{
}
}
if (BlankCellCount == 0) {
Logger.log("success");
/*
enter code here
*/
}
else {
Logger.log("fail" + BlankCellCount);
}
}