2

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

1 回答 1

3

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

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

注意:getValue没有s.

于 2013-11-09T12:33:31.050 回答