Google apps script 在给定条件下尝试删除多行时,超出了最大执行错误
目前,我正在尝试使用以下我设法编写的代码片段来实现这一点:Google apps script 在给定条件下尝试删除多行时,超出了最大执行错误,google-apps-script,google-spreadsheet-api,Google Apps Script,Google Spreadsheet Api,目前,我正在尝试使用以下我设法编写的代码片段来实现这一点: var ss = SpreadsheetApp.openById('***'); var rowCount = ss.getLastRow(); for (i=1; i <= rowCount; i++) { var I = ss.getRange("I" + i).getValue(); var J = ss.getRange("J" + i).getValue(); var K = ss.get
var ss = SpreadsheetApp.openById('***');
var rowCount = ss.getLastRow();
for (i=1; i <= rowCount; i++) {
var I = ss.getRange("I" + i).getValue();
var J = ss.getRange("J" + i).getValue();
var K = ss.getRange("K" + i).getValue();
var L = ss.getRange("L" + i).getValue();
var M = ss.getRange("M" + i).getValue();
var N = ss.getRange("N" + i).getValue();
var O = ss.getRange("O" + i).getValue();
var P = ss.getRange("P" + i).getValue();
var Q = ss.getRange("Q" + i).getValue();
var R = ss.getRange("R" + i).getValue();
var S = ss.getRange("S" + i).getValue();
var T = ss.getRange("T" + i).getValue();
if(I === 0 && J === 0 && K === 0 && L === 0 && M === 0 && N === 0 && O === 0 && P === 0 && Q === 0 && R === 0 && S === 0 && T === 0){
Logger.log(ss.getRange("I" + i).getA1Notation());
ss.deleteRow(i);
}
}
var ss=SpreadsheetApp.openById('***');
var rowCount=ss.getLastRow();
对于(i=1;i试试这个:
function myDelete()
{
var ss = SpreadsheetApp.openById('***');
var allshts=ss.getSheets();
var sh=allshts[0];
var rg=sh.getDataRange();
var vA=rg.getValues();
for(var i=vA.length-1;i>=0;i--)
{
if(vA[i][8]==0 && vA[i][9]==0 && vA[i][10]==0 && vA[i][11]==0 && vA[i][12]==0 && vA[i][13]==0 && vA[i][14]==0 && vA[i][15]==0 && vA[i][16]==0 && vA[i][17]==0 && vA[i][18]==0 && vA[i][19]==0)
{
sh.deleteRow(i+1);
}
}
}
最好从底部删除到顶部。尝试以下操作:
function myDelete()
{
var ss = SpreadsheetApp.openById('***');
var allshts=ss.getSheets();
var sh=allshts[0];
var rg=sh.getDataRange();
var vA=rg.getValues();
for(var i=vA.length-1;i>=0;i--)
{
if(vA[i][8]==0 && vA[i][9]==0 && vA[i][10]==0 && vA[i][11]==0 && vA[i][12]==0 && vA[i][13]==0 && vA[i][14]==0 && vA[i][15]==0 && vA[i][16]==0 && vA[i][17]==0 && vA[i][18]==0 && vA[i][19]==0)
{
sh.deleteRow(i+1);
}
}
}
最好从下到上删除。这里有一个使用JS中方法的解决方案。它可以避免手动循环和测试每个条件
函数deleteRow(){
var sheet=SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
//将所有数据作为二维数组获取
var data=sheet.getDataRange().getValues();
//遍历数组中的每一行
对于(var i=0;i这里有一个使用JS中的方法的解决方案。它可以避免手动循环和测试每个条件
函数deleteRow(){
var sheet=SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
//将所有数据作为二维数组获取
var data=sheet.getDataRange().getValues();
//遍历数组中的每一行
对于(var i=0;i要删除行,这些列中的每一列都必须是0
?是否0
实际在单元格中?还是它是一个空白单元格?换句话说,如果哪怕有一列不是0
,您就保留行?要删除行,这些列中的每一列都必须是0
?是否0
实际在单元格中?还是它是一个空白单元格换句话说,如果哪怕一列不是0
,你也会保留该行?哦,sh.deleteRow(i+1);你不认为吗?是的。我把它改成了(i+1)。谢谢你,sh.deleteRow(i+1);你不认为吗?是的。我把它改成了(i+1)。谢谢