首页 > 解决方案 > 根据从另一个循环返回的结果运行一个循环

问题描述

我想勾选 dataset2 中的一个单元格(这是来自 dataset1 的查询),在选定单元格被勾选后,我需要查找勾选单元格的值并从 dataset1 进行查找并将字符串插入 dataset1(对我来说它⭐)。

我想我正在尝试根据查找/条件运行一个循环,这是另一个循环的结果。下面是我的代码,它不工作。

好的,我做了一些小修复,但只有在一个框被打勾时才有效。第二个for if循环中的staffName仅在它是1个字符串时才有效,因此如果勾选了多个框,则它将不起作用。因此,我需要调整代码以使其处理名称数组而不仅仅是 1。

 if(dataSheetValues[j][0] == staffName && dataSheetValues[j][1] == lookUpLocation){break};


function starIcon(){
    
   var ss = SpreadsheetApp.getActiveSpreadsheet();
   var dataSheet = ss.getSheetByName("Sheet1");
   var inputSheet = ss.getSheetByName("Sheet2");
   var dataSheetLastRow = dataSheet.getLastRow();
   var inputSheetLastRow = inputSheet.getLastRow();


   var inputSheetValues = inputSheet.getRange(1,1,inputSheetLastRow,2).getValues();
   var dataSheetValues = dataSheet.getRange(1,1,dataSheetLastRow,2).getValues();
   var lookUpLocation = inputSheet.getRange('C1').getValue();
    
  
  for (var i=0;i<inputSheetValues.length;i++){
  

    if(inputSheetValues[i][0] == '⭐'){
    
       var staffName = inputSheet.getRange(i+1,2).getValue();  
      
    }
  }
    for(var j=0; j<dataSheetValues.length; j++){ 
     
           
    if(dataSheetValues[j][0] == staffName && dataSheetValues[j][1] == lookUpLocation){break};
      
  }
    var targetLookup = dataSheet.getRange(j+1,1).getValue();
    var starToName = dataSheet.getRange(j+1,1).setValue(targetLookup + '⭐');
    inputSheet.getRange('A2:A6').clearContent();
    Browser.msgBox('Done!')
  }
       


标签: javascriptgoogle-apps-scriptgoogle-sheets

解决方案


推荐阅读