我的代码只是将数据从电子表格A添加到电子表格B.如果电子表格A有21行数据而电子表格B只有20行,我的脚本显然是在尝试写入一行电子表格B不存在。所以脚本显然会自动添加50行,为多余的数据腾出空间。
当一行足够时,有没有办法阻止它添加50行?
这通常不会打扰我...但电子表格B中有格式,自动被复制到50行。当电子表格B发布到我们的网站时,这种格式看起来不正确。
这是我的代码。当rowCounterDTL
变量超过电子表格B中存在的行数时,会自动将50行添加到电子表格B中。
//Cycle through each line item in the task log
for (var i = 0; i < dataTL.length; ++i) {
//If the package type is Other
if(dataTL[i][2] == "Other Item" && dataTL[i][4] == "Complete") {
continue;
} else if (dataTL[i][2] == "Other Item") {
rowCounterDTL = rowCounterDTL + 1
var daysOld = Math.round((todaysDate - dataTL[i][0])/1000/60/60/24);
sheetDTL.getRange(rowCounterDTL,1).setValue(dataTL[i][1]); //Add the client ID to column 1 of the DTL
sheetDTL.getRange(rowCounterDTL,2).setValue(dataTL[i][2]); //Add the package type to column 2 of the DTL
sheetDTL.getRange(rowCounterDTL,3).setValue(dataTL[i][3]); //Add the package notes to column 3 of the DTL
sheetDTL.getRange(rowCounterDTL,4).setValue(dataTL[i][4]); //Add the package priority to column 4 of the DTL
sheetDTL.getRange(rowCounterDTL,5).setValue(daysOld); //Add the age to column 5 of the DTL
if (daysOld>20){
sheetDTL.getRange(rowCounterDTL,6).setValue("On Hold?");
} else if(daysOld>7) {
sheetDTL.getRange(rowCounterDTL,6).setValue("Max!");
} else if (daysOld>4){
sheetDTL.getRange(rowCounterDTL,6).setValue("High");
} else if (daysOld>2){
sheetDTL.getRange(rowCounterDTL,6).setValue("Moderate");
} else if (daysOld<3){
sheetDTL.getRange(rowCounterDTL,6).setValue("Low");
}
sheetDTL.getRange(rowCounterDTL,1,1,6).setBackgroundRGB(255, 121, 255)
}
}
答案 0 :(得分:0)
假设你有一行
代码中的 for (var i = 0; i < dataTL.length; ++i) {
高于此逻辑,
问题在于++i
。发生的事情是当你调用++ i时,它会在你的for循环语句开始之前将值递增1。
改为for (var i = 0; i < dataTL.length; i++) {
而你应该全部设定。
将“++”放在后面,意味着在逻辑完成后你将i增加1。
答案 1 :(得分:0)
您是否可以先插入if语句来检查可用的行?
} else if (dataTL[i][2] == "Other Item") {
if (rowCounterDTL == sheetDTL.getMaxRows()) {
sheetDTL.insertRowAfter(rowCounterDTL);
}
rowCounterDTL = rowCounterDTL + 1