我刚刚在10分钟前测试了这个脚本,它运行起来了,而且现在很热闹它正在抛出“服务错误:Spreadsheets”。
调试器没有显示任何内容,我不得不逐渐切换注释,直到找到触发错误的行:
ss.setNamedRange(namesFlat[j], sheet.getRange(j+2, 26));
下面粘贴的脚本。任何想法..?
谢谢! ģ
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);
}
答案 0 :(得分:0)
我弄清楚问题是什么,而且不是直接使用脚本,而是因为我在namesFlat []中的值以&#39; =&#39;开头。 sign [= value1,= value2等]创建一个数据验证列表,当我们选择相应的值时,它将显示命名范围。
我在创建命名范围后最终添加了这个:
eq = "=";
namesFlat[j] = eq.concat(namesFlat[j]);
并解决了它。
这是预期的行为吗?在scrips中使用字符串中的=字符真的不可能吗?
由于