Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法调用方法";getValues";未定义的_Javascript_Google Apps Script - Fatal编程技术网

Javascript 无法调用方法";getValues";未定义的

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

返回的错误是:

TypeError:无法调用未定义的方法“getValues”。(第7行,文件“代码”)


您的代码如下所示:

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');
  }
}