Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.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 Google应用程序脚本搜索UI工具与以前的功能错误_Javascript_Google Apps Script - Fatal编程技术网

Javascript Google应用程序脚本搜索UI工具与以前的功能错误

Javascript Google应用程序脚本搜索UI工具与以前的功能错误,javascript,google-apps-script,Javascript,Google Apps Script,上一个函数正在运行,但当我要单击上一个以查看它的最后一次搜索时。我收到一个错误“无法调用方法”到未定义的字符串。 请帮我输入代码。在上一个函数中,我对下面突出显示的代码进行了反复试验。请帮忙,谢谢 function click(eventInfo){ var ss = SpreadsheetApp.openById('1qpx2qZvBriBZ3jkOfHjMpsRbL9w04JZEJMeor11OJC81').getSheetByName("Teaching"); var app = Ui

上一个函数正在运行,但当我要单击上一个以查看它的最后一次搜索时。我收到一个错误“无法调用方法”到未定义的字符串。 请帮我输入代码。在上一个函数中,我对下面突出显示的代码进行了反复试验。请帮忙,谢谢

function click(eventInfo){
 var ss = SpreadsheetApp.openById('1qpx2qZvBriBZ3jkOfHjMpsRbL9w04JZEJMeor11OJC81').getSheetByName("Teaching");
 var app = UiApp.getActiveApplication();
 var row=ss.getActiveRange().getRowIndex();    
 var lastrow = ss.getLastRow();
        app.getElementById("txbid").setEnabled(true).setText("Search");                                                                                            

  var item = eventInfo.parameter.itemname;
   var next = app.getElementById("nextid").setEnabled(false);
   var pre = app.getElementById("previd").setEnabled(false);
   var lbl = app.getElementById("lblid").setText("No match"); 
   var f1 = eventInfo.parameter.thirdname;
  var f2 = eventInfo.parameter.fourthname;
  var f3 = eventInfo.parameter.fifthname;
  var f4 = eventInfo.parameter.emailname;
  var f1box = app.getElementById("thirdid");
  var f2box = app.getElementById("fourthid");
  var f3box = app.getElementById("fifthid");
  var f4box = app.getElementById("emailid");
    var hidden = app.getElementById("hidden");                  
   var data = ss.getRange(2,1,lastrow,6).getValues();// get the 3 columns of data
       for(nn=0;nn<data.length;++nn){ ;// iterate trough
         if(data[nn].toString().toLowerCase().match(item.toString())==item.toString()&&item!='') {;// if a match is found in one of the 3 fields, break the loop and show results
  f1box.setText(data[nn][2]);         
  f2box.setText(data[nn][3]);   
  f3box.setText(data[nn][4]); 
  f4box.setText(data[nn][5]); 
      app.getElementById("nextid").setEnabled(true).setText("Next");                                                                                            
      app.getElementById("txbid").setEnabled(true).setText("Search");                                                                                            
           ss.getRange(nn+2,2).activate();
            lbl.setText("found from"+data[nn][0]+"-"+data[nn][1]+", click Next").setEnabled(true);
          hidden.setValue(nn.toString())  
          break;}}
  return app;
}
function next(eventInfo){
   var ss = SpreadsheetApp.openById('1qpx2qZvBriBZ3jkOfHjMpsRbL9w04JZEJMeor11OJC81').getSheetByName("Teaching");
 var app = UiApp.getActiveApplication();
 var row=ss.getActiveRange().getRowIndex();    
 var lastrow = ss.getLastRow();
        app.getElementById("txbid").setEnabled(true).setText("Search");                                                                                            

  var item = eventInfo.parameter.itemname;
   var next = app.getElementById("nextid").setText("No match").setEnabled(false);
   var pre = app.getElementById("previd").setEnabled(true);
   var lbl = app.getElementById("lblid").setText("0 results to display"); 
   var f1 = eventInfo.parameter.thirdname;
  var f2 = eventInfo.parameter.fourthname;
  var f3 = eventInfo.parameter.fifthname;
  var f4 = eventInfo.parameter.emailname;
  var f1box = app.getElementById("thirdid").setText("");
  var f2box = app.getElementById("fourthid").setText("");
  var f3box = app.getElementById("fifthid").setText("");
  var f4box = app.getElementById("emailid").setText("");
    var start = Number(eventInfo.parameter.hidden)+1;
    var hidden = app.getElementById("hidden");                  
   var data = ss.getRange(2,1,lastrow,6).getValues();// get the 3 columns of data
       for(nn=start;nn<data.length;++nn){ ;// iterate trough
         if(data[nn].toString().toLowerCase().match(item.toString())==item.toString()&&item!='') {;// if a match is found in one of the 3 fields, break the loop and show results
  f1box.setText(data[nn][2]);         
  f2box.setText(data[nn][3]);   
  f3box.setText(data[nn][4]); 
  f4box.setText(data[nn][5]); 
         app.getElementById("previd").setEnabled(true).setText("Previous");                                                                                                
      app.getElementById("nextid").setEnabled(true).setText("Next");                                                                                                
      app.getElementById("txbid").setEnabled(true).setText("Search");                                                                                            
           ss.getRange(nn+2,2).activate();
            lbl.setText("found from"+data[nn][0]+"-"+data[nn][1]+", click Next").setEnabled(true);
          hidden.setValue(nn.toString())  
          break;}}
  return app;
}
function previous(eventInfo){
   var ss = SpreadsheetApp.openById('1qpx2qZvBriBZ3jkOfHjMpsRbL9w04JZEJMeor11OJC81').getSheetByName("Teaching");
 var app = UiApp.getActiveApplication();
 var row=ss.getActiveRange().getRowIndex();    
 var lastrow = ss.getLastRow();
        app.getElementById("txbid").setEnabled(true).setText("Search");                                                                                            

  var item = eventInfo.parameter.itemname;
   var next = app.getElementById("nextid").setEnabled(true);
   var pre = app.getElementById("previd").setText("No match").setEnabled(false);
   var lbl = app.getElementById("lblid").setText("No match"); 
   var f1 = eventInfo.parameter.thirdname;
  var f2 = eventInfo.parameter.fourthname;
  var f3 = eventInfo.parameter.fifthname;
  var f4 = eventInfo.parameter.emailname;
  var f1box = app.getElementById("thirdid").setText("");
  var f2box = app.getElementById("fourthid").setText("");
  var f3box = app.getElementById("fifthid").setText("");
  var f4box = app.getElementById("emailid").setText("");
返回应用程序;
}

您正在使用索引nn迭代数据数组,但由于数组的构建方式,该数组的最后一项为空。 当您使用

var data = ss.getRange(2,1,lastrow,6).getValues();// get the 3 columns of data
从第2行开始,获取长度的lastRow值,这意味着数据包含最后一行下方的空行(lastRow返回填充数据范围的总高度)

尝试使用
var data=ss.getRange(2,1,lastrow-1,6)
应该可以解决这个问题


注意:这是我几年前最初编写的(修改过的)代码,不确定我在原始脚本中犯了那个错误;-)

您正在使用索引nn迭代数据数组,但由于数组的构建方式,该数组的最后一项为空。 当您使用

var data = ss.getRange(2,1,lastrow,6).getValues();// get the 3 columns of data
从第2行开始,获取长度的lastRow值,这意味着数据包含最后一行下方的空行(lastRow返回填充数据范围的总高度)

尝试使用
var data=ss.getRange(2,1,lastrow-1,6)
应该可以解决这个问题


注意:这是我几年前最初编写的(修改过的)代码,不确定我在原始脚本中犯了那个错误;-)

我仍然收到错误,无法调用未定义的方法toSting。我还应该编辑其他代码吗?当它将是上一个按钮的最后一个结果时,我应该得到“不匹配”。。请帮助我获取您以前函数的副本?或者您可以将其粘贴到此处,以便我可以查看我的错误。这是一个很大的帮助(请检查我上面突出显示的代码…谢谢Serge.var start=Number(eventInfo.parameter.hidden)-1;或(nn=start;nnI找不到正确版本的原始脚本,但如果需要,您可以共享电子表格的副本(只读且无私人数据)并在这里显示链接。这是我的示例电子表格=我的脚本链接=(它也在电子表格中。)谢谢你的帮助和时间。我能收到你的电子邮件吗?这样我就可以很容易地与你联系这个问题了?谢谢@Serge InAsim仍然收到错误无法调用未定义的方法toSting。我应该编辑其他代码吗?我应该得到“不匹配”当它将是上一个按钮的最后一个结果时..请帮助感谢我可以得到你上一个函数的副本吗?或者你可以将它粘贴到这里,这样我就可以看到我的错误了。这是一个很大的帮助..:(请检查我上面突出显示的代码…谢谢Serge先生.var start=Number(eventInfo.parameter.hidden)-1;或者(nn=start;nnI找不到正确版本的原始脚本,但如果需要,您可以共享电子表格的副本(只读且无私人数据),并在此处显示链接。这是我的示例电子表格=我的脚本链接=(它也在电子表格中。)谢谢你的帮助和时间。我能收到你的电子邮件吗?这样我就可以很容易地与你联系这个问题了?谢谢@Serge insas
var data = ss.getRange(2,1,lastrow,6).getValues();// get the 3 columns of data