返回的错误是:
“ TypeError:无法调用未定义的方法“ getValues”。(第7行,文件“代码”)”
function setDropdown() {
var ss = SpreadsheetApp.getActive();
var sht = ss.getSheetByName('Sheet1');
selecionaRange(sht);
var arrayValues = rng.getValues();
var rangeRule = SpreadsheetApp.newDataValidation().requireValueInList(arrayValues);
ss.getRange('sheet1!A6').setDataValidation(rangeRule);
}
function selecionaRange(sht) {
if (sht.getRange("A1") == "IM") {
return rng = sht.getRange('B1:B5');
}
}
答案 0 :(得分:1)
非常感谢您努力帮助我。我发现我的问题是在sht.getRange(“ A1”)之后缺少.getValue()方法
现在可以了。
var rng = null //or better another value
function setDropdown() {
var ss = SpreadsheetApp.getActive();
var sht = ss.getSheetByName('Sheet1');
selecionaRange(sht);
var arrayValues = rng.getValues();
var rangeRule = SpreadsheetApp.newDataValidation().requireValueInList(arrayValues);
ss.getRange('sheet1!A6').setDataValidation(rangeRule);
}
function selecionaRange(sht) {
if (sht.getRange("A1").getValue() == "IM") { //Here must have .getValue()
return rng = sht.getRange('B1:B5');
}
}
答案 1 :(得分:0)
function setDropdown() {
var ss = SpreadsheetApp.getActive();
var sht = ss.getSheetByName('Sheet1');
var rng = selecionaRange(sht);
var arrayValues = rng.getValues();
var rangeRule = SpreadsheetApp.newDataValidation().requireValueInList(arrayValues);
ss.getRange('sheet1!A6').setDataValidation(rangeRule);
}
function selecionaRange(sht) {
if (sht.getRange("A1") == "IM") {
return sht.getRange('B1:B5');
}
}
答案 2 :(得分:0)
您的代码开始如下:
function setDropdown() {
var ss = SpreadsheetApp.getActive();
var sht = ss.getSheetByName('Sheet1');
selecionaRange(sht);
var arrayValues = rng.getValues();
请注意,第var arrayValues = rng.getValues();
行-您正在处理的rng
对象未定义。您需要先对其进行定义,从函数外部获取它或将其作为参数传递-但是您需要在调用方法或对其执行任何操作之前将其存在。
此外,在selecionaRange
方法内的return语句中,您无需将sht.getRange('B1:B5');
值设置为rng然后返回它...只需返回函数返回的内容,像这样:
return sht.getRange('B1:B5');