Я только что протестировал этот скрипт 10 минут назад, он сработал, и теперь он с трудом бросает «служебную ошибку: электронные таблицы».Служебный код setNamedRange приводит к ошибке службы
отладчик не показывает ничего, мне пришлось переключить комментарий gradualy, пока я не нашел строку, которая вызывает ошибку:
ss.setNamedRange(namesFlat[j], sheet.getRange(j+2, 26));
Сценарий вставили ниже. Есть идеи..?
Спасибо! G
function onOpen()
{
var ss = SpreadsheetApp.getActiveSpreadsheet();
var menuItems = [{name: "Add Validation", functionName: "createNamedRangesAndVaidation"}]
ss.addMenu("Script", menuItems);
}
function createNamedRangesAndVaidation()
{
var ss, sheet, names, links, dataV, namesFlat, rule;
ss = SpreadsheetApp.getActiveSpreadsheet();
sheet = ss.getActiveSheet();
names = sheet.getRange("y:y").getValues();
dataV = sheet.getRange("a2");
namesFlat = []
for (var i = 1, length = names.length; i < length; i++)
{
if (!names[i][0]) break;
namesFlat.push(names[i][0]);
}
for (var j = 0, jlength = namesFlat.length; j < jlength; j++)
{
ss.setNamedRange(namesFlat[j], sheet.getRange(j+2, 26));
}
rule = SpreadsheetApp.newDataValidation().requireValueInList(namesFlat).build();
dataV.setDataValidation(rule);
}