Javascript 无法调用方法";getValues";未定义的
返回的错误是: TypeError:无法调用未定义的方法“getValues”。(第7行,文件“代码”)Javascript 无法调用方法";getValues";未定义的,javascript,google-apps-script,Javascript,Google Apps Script,返回的错误是: TypeError:无法调用未定义的方法“getValues”。(第7行,文件“代码”) 您的代码如下所示: function setDropdown() { var ss = SpreadsheetApp.getActive(); var sht = ss.getSheetByName('Sheet1'); selecionaRange(sht); var arrayValues = rng.getValues(); 请注意,行var arrayValue
您的代码如下所示:
function setDropdown() {
var ss = SpreadsheetApp.getActive();
var sht = ss.getSheetByName('Sheet1');
selecionaRange(sht);
var arrayValues = rng.getValues();
请注意,行var arrayValues=rng.getValues()代码>-您正在处理的rng
对象未定义。您需要首先定义它,从函数外部获取它,或者将它作为参数传递——但在调用方法或对其执行任何操作之前,您需要它存在
另外,在seleconarange
方法中的return语句中,您不需要设置sht.getRange('B1:B5')代码>值到rng,然后返回它。。。只需返回函数返回的内容,如下所示:
返回sht.getRange('B1:B5')代码>非常感谢你帮助我。我发现我的问题是在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');
}
}
当您在“return sht.getRange('B1:B5');“return sht.getRange('B1:B5');”行上调用getValues()
时,rng
未定义,rng
被创建为一个全局变量,并且仅当if(sht.getRange(“A1”)=“IM”)
条件为真时才赋值谢谢您的回答!它不起作用;我的意图是在其他函数SelecionRange()中定义它,然后将所选范围返回到rng变量Thank Il Maro!!!即使我将var rng设置为全局变量,它也不起作用。我的意图是在第二个函数selecionRange()中设置变量rng
function setDropdown() {
var ss = SpreadsheetApp.getActive();
var sht = ss.getSheetByName('Sheet1');
selecionaRange(sht);
var arrayValues = rng.getValues();
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');
}
}