如何用Google AppScript删除Google Sheet中N列值为1的行
Google AppScript 实现批量删除指定行并重置筛选
完整脚本
function deleteRowsAndResetFilter() { const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); let filter = sheet.getFilter(); // 移除现有筛选(若存在),避免条件冲突 if (filter) filter.remove(); // 1. 为N列(第14列)设置筛选条件:值为"1" const newFilter = sheet.getDataRange().createFilter(); newFilter.setColumnFilterCriteria(14, SpreadsheetApp.newFilterCriteria().whenTextEqualTo("1").build() ); // 2. 收集并删除筛选出的行(从下往上删,避免行号偏移) const visibleRowIndexes = []; for (let row = 1; row <= sheet.getLastRow(); row++) { if (!sheet.isRowHiddenByFilter(row)) visibleRowIndexes.push(row); } for (let i = visibleRowIndexes.length - 1; i >= 0; i--) { sheet.deleteRow(visibleRowIndexes[i]); } // 3. 移除N列筛选条件,重新启用该列筛选 filter = sheet.getFilter(); filter.setColumnFilterCriteria(14, SpreadsheetApp.newFilterCriteria().build()); }
关键说明
- 筛选条件适配:如果N列存储的是数值而非文本,把
whenTextEqualTo("1")替换为whenNumberEqualTo(1) - 指定工作表:若要操作固定工作表,将
getActiveSheet()改为getSheetByName("你的工作表名") - 数据备份:首次运行前建议复制工作表备份,防止误删数据
内容的提问来源于stack exchange,提问作者Poch
相关产品推荐
相关产品推荐

