Javascript 谷歌活套电子表格未正确检查数组?

Javascript 谷歌活套电子表格未正确检查数组?,javascript,google-apps-script,google-sheets,google-spreadsheet-api,google-sheets-api,Javascript,Google Apps Script,Google Sheets,Google Spreadsheet Api,Google Sheets Api,如果我在这里的代码中犯了一个非常基本的错误,我很抱歉(是的,我知道它非常混乱/冗长,我上个月才开始做这件事)。我的目标是将图像插入到绑定到脚本的工作表中。运行时,我的一名实验室技术人员或驱动程序将能够登录或注销案例。有三种可能的表格。教练,恩里克,或交付。当他们选择时,它会询问要查找的号码(即GDL4256或L849)。一旦它在“Enrique”表或“Coach”表中找到数字,它将跳过所需的单元格,根据按钮状态是“是”还是“否”,将案例记录为“在实验室”或“在途中”(如第36行所示,其中c可以是

如果我在这里的代码中犯了一个非常基本的错误,我很抱歉(是的,我知道它非常混乱/冗长,我上个月才开始做这件事)。我的目标是将图像插入到绑定到脚本的工作表中。运行时,我的一名实验室技术人员或驱动程序将能够登录或注销案例。有三种可能的表格。教练,恩里克,或交付。当他们选择时,它会询问要查找的号码(即GDL4256或L849)。一旦它在“Enrique”表或“Coach”表中找到数字,它将跳过所需的单元格,根据按钮状态是“是”还是“否”,将案例记录为“在实验室”或“在途中”(如第36行所示,其中c可以是“c+4”或“c+5”),我的问题是,当我运行脚本时,实际上,它似乎从来不会将插入的值与数组中的数据进行软比较。我希望我能在这里找到问题,但在调试器中找不到它。有什么想法吗?(是的,我是一个平民,但我认为我到目前为止做得还不错……)

我省略了大约9/10的代码,因为大部分代码都是重复的,我仍在寻找缩小代码的方法,我只是需要先了解更多关于这个问题的信息

function Enrique(){
    stat = 0;
    var ui = SpreadsheetApp.getUi();
    var response = ui.alert('Case Entry', 'Is this case being logged into the lab?', ui.ButtonSet.YES_NO); //Must answer "Yes". Script will end otherwise.
    if (response == ui.Button.YES) {
        //User said yes, logging into the lab
        var sh = SpreadsheetApp.getActiveSpreadsheet();
        var ss = sh.getActiveSheet();
        var cell = ss.getActiveCell();
        var ui = SpreadsheetApp.getUi();
        //Getting case number, not case sensitive
        var response = ui.prompt('Case Entry', 'What is the case number?', ui.ButtonSet.OK);
        var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
        var sheetNumber = sheets.length;
        var currentSheet = ss.getIndex();//-1
        //Make array
        Logger.log(currentSheet);
        SpreadsheetApp.setActiveSheet(sheets[currentSheet]);
        cell = sheets[currentSheet].getRange(1,1);
        var activeR = cell.getRow()-1;
        var activeC = cell.getColumn()-1;
        var data = sheets[currentSheet].getDataRange().getValues();
        var step = 0;
        //loop through data on sheet        
        var r = activeR;
        var c = activeC;
        var d = data[0].length;
        for(;r<d;++r){       
            for(;c<d;++c){          
                step++; 
                Logger.log('sheet : '+currentSheet+'    step:'+step+'   response.getResponseText() '+response.getResponseText()+'  =  '+data[r][c]);            
                if(data[r][c]==''||(step==1&&currentSheet==currentSheet)){ continue };                                                                          
                if(response.getResponseText().toString().toLowerCase()==data[r][c].toString().toLowerCase()){            
                    sheets[currentSheet].getRange(r+1,c+4).activate().setValue("Yes").setBackgroundRGB(0,255,0);                                                                                                                                                                             
                    Browser.msgBox("The case has been logged into the lab on the sheet 'Enrique'");       
                    stat = 1;
                    return                                                                                                              
                }
            }                                                                                                                          
        }
        if(stat === 0)
        {
           Browser.msgBox("The code failed somewhere...");
        }
    }
}
函数Enrique(){
stat=0;
var ui=SpreadsheetApp.getUi();
var response=ui.alert('Case Entry','this Case正在登录到实验室吗?',ui.ButtonSet.YES_NO);//必须回答“YES”。否则脚本将结束。
如果(响应==ui.Button.YES){
//用户说可以,登录到实验室
var sh=SpreadsheetApp.getActiveSpreadsheet();
var ss=sh.getActiveSheet();
var cell=ss.getActiveCell();
var ui=SpreadsheetApp.getUi();
//获取案例编号,不区分大小写
var response=ui.prompt('Case Entry','Case number是什么?',ui.ButtonSet.OK);
var sheets=SpreadsheetApp.getActiveSpreadsheet().getSheets();
var sheetNumber=sheets.length;
var currentSheet=ss.getIndex();/-1
//制作数组
Logger.log(当前表);
电子表格应用程序setActiveSheet(表格[currentSheet]);
单元格=工作表[currentSheet].getRange(1,1);
var activeR=cell.getRow()-1;
var activeC=cell.getColumn()-1;
var data=sheets[currentSheet].getDataRange().getValues();
var阶跃=0;
//循环浏览工作表上的数据
var r=activeR;
var c=activeC;
var d=数据[0]。长度;

因为(;r好吧,我已经到处看看了,因为没有人能帮助我(谢谢)。 我终于找到了我在课程中需要的部分,以便将我需要的信息更可靠地传递到活套中。这是我使用的代码,因为我知道其他人会遇到与我相同的问题。欢迎他们根据需要复制我

function Search(){
  var ui = SpreadsheetApp.getUi();
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var response = ui.alert('Case Entry', 'Is this case being logged into the lab?', ui.ButtonSet.YES_NO);
  if (response == ui.Button.YES) {
    var response = ui.prompt('Case Entry', 'What is the case number?', ui.ButtonSet.OK);
    var values = SpreadsheetApp.getActiveSheet().getDataRange().getValues();
//The 0 arguement in the function calls below is just a placeholder.
//I was originally using it for one bit to be called by "a" in the looper function
    if(looper(0, response, "Enrique", 5, jumpToEnr(),  "The case has been logged in under the sheet ", "#00ff00") == 1){return}
    if(looper(0, response, "Coach", 5, jumpToCoach(),  "The case has been logged in under the sheet ", "#00ff00") == 1){return}
    if(looper(0, response, "Delivered", 2, jumpToDel(),  "The case has been found in the sheet ", "#ffff00") == 1){return}
  }
  if (response == ui.Button.NO) {
    var response = ui.prompt('Case Entry', 'What is the case number?', ui.ButtonSet.OK);
    var values = SpreadsheetApp.getActiveSheet().getDataRange().getValues();
    if(looper(0, response, "Enrique", 6, jumpToEnr(), "The case has been logged in under the sheet ", "#00ff00") == 1){return}
    if(looper(0, response, "Coach", 6, jumpToCoach(), "The case has been logged in under the sheet ", "#00ff00") == 1){return}
    if(looper(0, response, "Delivered", 2, jumpToDel(), "The case has been found in the sheet ", "#ffff00") == 1){return}
  }
  Browser.msgBox("sorry, it seems like something went wrong...");
}

function looper(a, b, c, d, e, f, g){
  e;
  var values = SpreadsheetApp.getActiveSheet().getDataRange().getValues();
  for(n=0;n<values.length;++n){
    var cell = values[n][1];
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
    if(b.getResponseText() == cell){sheet.getRange(n+1,d).activate().setBackground("#00ff00").setValue("Yes"); Browser.msgBox(f+c); return 1;}
  }
}

function DelSearch(){
  var response = ui.prompt('Case Search', 'What is the case number?', ui.ButtonSet.OK);
  looper(0,response, "Delivered", 2, jumptoDel(),"I found the case in the sheet ", "#ffff00");
}

function formSubmit(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  jumpToForm2();
  if(ss.getSheetByName("Form Responses 2").getRange(2,5).getValue() == "Enrique"){copyRow("Form Responses 2","Enrique");}
}

function jumpToCoach() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName('Coach');
  Logger.log(sheet.getName());
  SpreadsheetApp.setActiveSheet(sheet);
  sheet.getRange('A1').activate();
}
function jumpToEnr() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName('Enrique');
  Logger.log(sheet.getName());
  SpreadsheetApp.setActiveSheet(sheet);
  sheet.getRange('A1').activate();
}

function jumpToDel() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName('Delivered');
  Logger.log(sheet.getName());
  SpreadsheetApp.setActiveSheet(sheet);
  sheet.getRange('A1').activate();
}
函数搜索(){
var ui=SpreadsheetApp.getUi();
var sheet=SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var response=ui.alert('Case Entry','this Case正在登录到实验室吗?',ui.ButtonSet.YES\u NO);
如果(响应==ui.Button.YES){
var response=ui.prompt('Case Entry','Case number是什么?',ui.ButtonSet.OK);
var values=SpreadsheetApp.getActiveSheet().getDataRange().getValues();
//下面函数调用中的0参数只是一个占位符。
//我最初使用它是为了一个位被looper函数中的“a”调用
如果(looper(0,response,“Enrique”,5,jumpToEnr(),“案例已在工作表下登录”,“#00ff00”)==1{return}
如果(looper(0,response,“Coach”,5,jumpToCoach(),“案例已在工作表下登录”,“#00ff00”)==1{return}
如果(looper(0,响应,“已传递”,2,jumpToDel(),“已在工作表中找到案例”,“#ffff00”)==1{return}
}
如果(响应==ui.Button.NO){
var response=ui.prompt('Case Entry','Case number是什么?',ui.ButtonSet.OK);
var values=SpreadsheetApp.getActiveSheet().getDataRange().getValues();
如果(looper(0,response,“Enrique”,6,jumpToEnr(),“案例已在工作表下登录”,“#00ff00”)==1{return}
如果(looper(0,response,“Coach”,6,jumpToCoach(),“案例已在工作表下登录”,“#00ff00”)==1{return}
如果(looper(0,响应,“已传递”,2,jumpToDel(),“已在工作表中找到案例”,“#ffff00”)==1{return}
}
msgBox(“对不起,好像出了什么问题……”);
}
函数活套(a、b、c、d、e、f、g){
E
var values=SpreadsheetApp.getActiveSheet().getDataRange().getValues();
对于(n=0;n