“for loop”找不到给定条件的行

时间:2013-11-06 20:43:19

标签: google-apps-script

驱动程序“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)
          }
        }
      }
    }
    }

1 个答案:

答案 0 :(得分:3)

我没有尝试过您的代码,但我认为问题在于您使用.getValues来获取单个单元格值,因此它返回了一个3D数组。然后,您尝试使用此行col[n][10] == type)将奇异值与数组进行比较。尝试将您的类型和纳税申报行更改为:

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

注意:getValue没有s