Google apps script &引用;for loop";找不到给定条件的行

Google apps script &引用;for loop";找不到给定条件的行,google-apps-script,Google Apps Script,驱动程序“1”的代码汇总数据,驱动程序“2”的代码继续汇总数据(1个驱动程序的数据+2个驱动程序的数据),但每个驱动程序需要不同的结果。有什么问题吗 谢谢你抽出时间 function driverBort() { var srs = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('List1'); var col = srs.getRange('C:M').getValues(); var d

驱动程序“1”的代码汇总数据,驱动程序“2”的代码继续汇总数据(1个驱动程序的数据+2个驱动程序的数据),但每个驱动程序需要不同的结果。有什么问题吗

谢谢你抽出时间

    function driverBort() {
      var srs = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('List1');
      var col = srs.getRange('C:M').getValues();
      var data = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('IDs');
      var main = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Table');

      var type = data.getRange('A38').getValue();
      var tax =  data.getRange('D38').getValue();
      var drivers = main.getRange('A2:B10').getValues();

      var sum = 0;  


    for (var n = 0; n < col.length; n++) {
      for (var i = 0; i < drivers.length; i++) {
        if (col[n][0] == drivers[i][0]) {
          if (col[n][10] == type) {
            sum += col[n][7] * tax
            main.getRange(i+2,2).setValue(sum)
          }
        }
      }
    }
    }
函数驱动程序端口(){
var srs=SpreadsheetApp.getActiveSpreadsheet().getSheetByName('List1');
var col=srs.getRange('C:M').getValues();
var data=SpreadsheetApp.getActiveSpreadsheet().getSheetByName('IDs');
var main=SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Table');
var type=data.getRange('A38').getValue();
var tax=data.getRange('D38').getValue();
var drivers=main.getRange('A2:B10').getValues();
var总和=0;
对于(变量n=0;n
我还没有尝试过你的代码,但我认为问题在于你使用了
.getValues
来表示单个单元格的值,因此它返回了一个3D数组。然后,您尝试将一个奇异值与一个具有以下行的数组进行比较
col[n][10]==type)
。尝试将您的类型和纳税申报行更改为:

var type = data.getRange('A38').getValue();
var tax =  data.getRange('D38').getValue();

注意:
getValue
不带
s

您应该重新阅读GAS的基础知识,了解如何在电子表格中获取值,并按照规则重新编写代码。。。我相信它会更有效。使用记录器还将帮助您了解发生了什么。是的,对于初学者,不要使用setActiveSelection@Serge因为我重写了我的代码,但仍然不能按照我想要的方式工作。新问题出现)谢谢你的提示,但错误在“循环”中的某个地方。@snoop31 vletech的答案是正确的(+1)按照他的建议更改代码后,你到底有什么错误?@vletech:小错误,2D就足够了:-)这不是最后一部3D电影,只是一个数组:-)@Sergeinsas在数组中调用数组是我的一个坏习惯。。。我可能会开始叫他们“”:)他他。。。好主意。:-)