Arrays 改进了通过包含值删除行的功能
我有一个工作代码,如果列符合其中一个条件,就从工作表中删除行。它基于数组,因此比标准的GoogleSheetArrays 改进了通过包含值删除行的功能,arrays,if-statement,google-apps-script,google-sheets,Arrays,If Statement,Google Apps Script,Google Sheets,我有一个工作代码,如果列符合其中一个条件,就从工作表中删除行。它基于数组,因此比标准的GoogleSheetdeleteRow函数运行得更快。我这样称呼它: deleteRowsBV('SIZ',4,'0','') deleteRowsBV('SIZ',4,<='0',=='') 在哪里 我想要的是一个带有或多或少等号的调用函数,如下所示: deleteRowsBV('SIZ',4,'0','') deleteRowsBV('SIZ',4,<='0',=='') delete
deleteRow
函数运行得更快。我这样称呼它:
deleteRowsBV('SIZ',4,'0','')
deleteRowsBV('SIZ',4,<='0',=='')
在哪里
我想要的是一个带有或多或少等号的调用函数,如下所示:
deleteRowsBV('SIZ',4,'0','')
deleteRowsBV('SIZ',4,<='0',=='')
deleteRowsBV('SIZ',4,基于此,对于电子表格应用程序中的所有方法,电子表格行和列从1开始编号,而javascript数组从0开始编号。处理这两个方法时,您需要在这些数字基数之间进行调整。删除行时,电子表格数据范围的大小将变小;您确实考虑到了这一点nt,但由于您要循环到最大大小,因此此要求使代码变得复杂。您可以通过从最大大小循环来简化事情
您可以参考这个。但是,它现在只查看单个单元格编辑的值,而不查看整个工作表中的值
基于此,电子表格行和列的编号从1开始,对于电子表格应用程序中的所有方法,而javascript数组的编号从0开始。在使用这两个数字基时,您需要在这些数字基之间进行调整。删除行时,电子表格数据范围的大小将变小;您确实考虑到了这一点,但因为你要循环到最大大小,所以这个要求会使代码变得复杂。你可以通过从最大值开始循环来简化事情
您可以参考这个。但是,它现在只查看单个单元格编辑的值,而不查看整个工作表中的值
function onEdit(e) {
//Logger.log(JSON.stringify(e));
//{"source":{},"range":{"rowStart":1,"rowEnd":1,"columnEnd":1,"columnStart":1},"value":"1","user":{"email":"","nickname":""},"authMode":{}}
try {
var ss = e.source; // Just pull the spreadsheet object from the one already being passed to onEdit
var s = ss.getActiveSheet();
// Conditions are by sheet and a single cell in a certain column
if (s.getName() == 'Sheet1' && // change to your own
e.range.columnStart == 3 && e.range.columnEnd == 3 && // only look at edits happening in col C which is 3
e.range.rowStart == e.range.rowEnd ) { // only look at single row edits which will equal a single cell
checkCellValue(e);
}
} catch (error) { Logger.log(error); }
};
function checkCellValue(e) {
if ( !e.value || e.value == 0) { // Delete if value is zero or empty
e.source.getActiveSheet().deleteRow(e.range.rowStart);
}
}