Скрипт Google App игнорирует ошибку проверки данных - PullRequest
0 голосов
/ 01 февраля 2019

У меня есть несколько листов, в которых есть правила проверки данных для использования в качестве раскрывающихся списков.Мой код теперь создает ошибки при попытке вставить другие (не проверенные) данные в эти ячейки.

Я ищу способ игнорировать правило проверки данных и вставлять данные без внесения изменений в проверку данных.правила уже установлены.Я просто хочу игнорировать ошибку скрипта приложения.

Данные, введенные вами в ячейку U440, нарушают правила проверки данных, установленные в этой ячейке.

Строка, в которойОшибки кода не имеют проблем с проверкой данных, поэтому я не совсем уверен, как бороться с ошибкой.

function CountCol(ss, col){var vals = ss.getRange(col+'1:'+col).getValues();var last = vals.filter(String).length;return last+1;}

Эта функция возвращает номер строки первой пустой строки для объявленного столбца.Не уверен, как это нарушает правило проверки данных, как в моем коде. Я считаю столбец «C», а проверки данных выполняются в столбцах «O», «P», «Q», «U» и «V» и в столбце «Ошибка проверки».это «U».

var row_data = [[""], [""]]; //example data
var team = "12345645647abcdef"; //example spreadsheet id
var sn = "Sheet1"; //example sheet name
var caseload = SpreadsheetApp.openById(team).getSheetByName(sn);
var append = CountCol(caseload, "C");
Logger.log("adding to row: "+String(append));
try{
  caseload.getRange(append, 1, 1, row_data[0].length).setValues(row_data); //this is where the error should be. The output manages to write most colums but stops before writing column 'U'.
}catch(e){
  Browser.msgBox(e);
  Logger.log("failed to append: "+String(append)+ ":" + String(row_data[0][0]) + ": " + String(row_data[0][1]));
}
caseload.getRange(append, 1, 1, row_data[0].length).setBackground("red");

1 Ответ

0 голосов
/ 01 февраля 2019

Вы пробовали простую попытку / перехват?

try {
  SpreadsheetApp.doThing()
} catch (e) {
  // ignore
}

Вы также можете отключить проверку данных в диапазоне, вызвав setDataValidation (правило), чтобы разрешить любой ввод, а затем установить проверку данных обратно настарый после того, как вы вставили нужные данные.

На этой странице приведены примеры того, как это сделать: https://developers.google.com/apps-script/reference/spreadsheet/data-validation

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...