繁体   English   中英

我在谷歌表上一直收到这个错误“类型错误:无法读取未定义的 searchRecord @ Code.gs:213 的属性 '0'”

[英]I KEEP GETTING THIS ERROR on google sheet “TypeError: Cannot read property '0' of undefined searchRecord @ Code.gs:213”

在我尝试使用 for 循环进行迭代时不断出现错误,我已经检查过但仍然找不到错误。 不知道该怎么做才能得到结果。

var rowValue = values[0]; 这实际上是它不断给我错误的地方。

function searchRecord() {
  
  var myGooglSheet= SpreadsheetApp.getActiveSpreadsheet(); //declare a variable and set with active google sheet 
  var shUserForm= myGooglSheet.getSheetByName("User Form"); //delcare a variable and set with the User Form worksheet
  var datasheet = myGooglSheet.getSheetByName("Database"); ////delcare a variable and set with the Database worksheet
    
  var str       = shUserForm.getRange("C4").getValue();
  var values    = datasheet.getDataRange().getValues(); //getting the entire values from the used range and assigning it to values variable
  var valuesFound=false; //variable to store boolean value
  
  for (var i = 0; i = values.length; i++) 
    {
    var rowValue = values[0]; //declaraing a variable and storing the value
   
    //checking the first value of the record is equal to search item
    if (rowValue[0] == str){     
      shUserForm.getRange("C7").setValue(rowValue[0]) ;
      shUserForm.getRange("C9").setValue(rowValue[1]);
      shUserForm.getRange("C11").setValue(rowValue[2]);
      shUserForm.getRange("C13").setValue(rowValue[3]);
      shUserForm.getRange("C15").setValue(rowValue[4]);
      shUserForm.getRange("C17").setValue(rowValue[5]);
      shUserForm.getRange("C19").setValue(rowValue[6]);
      shUserForm.getRange("C21").setValue(rowValue[7]);
      shUserForm.getRange("C23").setValue(rowValue[8]);
      shUserForm.getRange("C25").setValue(rowValue[9]);
      shUserForm.getRange("C27").setValue(rowValue[10]);
      shUserForm.getRange("C29").setValue(rowValue[11]);
      shUserForm.getRange("C31").setValue(rowValue[12]);
      
      return; //come out from the search function
      
      }
  }

if(valuesFound==false){
  //to create the instance of the user-interface environment to use the messagebox features
  var ui = SpreadsheetApp.getUi();
  ui.alert("No record found!");
 }

}

确保数据确实在工作表中,因为如果它是空的,则会抛出错误。

尝试使用Logger.log (数组或值)检查您正在使用的数组实际上是什么样的。

您希望一行匹配还是多行? 如果只有一个,那么你应该break圈外的你找到了你的比赛结束后,否则脚本运行,直到所有行已经过测试,即使第一次是在比赛。

在描述错误时,陈述错误是有帮助的,而不是说“有错误”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM