Google apps script &引用;for loop";找不到给定条件的行
驱动程序“1”的代码汇总数据,驱动程序“2”的代码继续汇总数据(1个驱动程序的数据+2个驱动程序的数据),但每个驱动程序需要不同的结果。有什么问题吗 谢谢你抽出时间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
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在数组中调用数组是我的一个坏习惯。。。我可能会开始叫他们“”:)他他。。。好主意。:-)