如何用Google Apps Script删除Google Sheets中特定值的单元格?
解决方案
你可以通过添加else if分支实现删除功能,核心逻辑是遍历列表所在的A列,找到匹配值后删除对应行。以下是修改后的完整代码:
function itens() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var lista = ss.getSheetByName("BASE LAB(TBD)"); var source = lista.getRange("B2"); var opt = lista.getRange("F2"); // 注意:你描述里提到的是E2,但当前代码取的是F2,若实际是E2请改为"E2" var patrimonio = source.getValue(); var option = opt.getValue(); var lastLineOfData = lista.getDataRange().getLastRow(); var targetColumn = lista.getRange(1, 1, lastLineOfData, 1); // 获取A列所有数据行 var values = targetColumn.getValues(); if (option == "ADICIONAR ITEM") { lista.getRange(lastLineOfData + 1, 1, 1, 1).setValue(patrimonio); ss.toast("EQUIPAMENTO ADICIONADO"); } else if (option == "DELETE ITEM") { // 若使用葡萄牙语环境,可改为"REMOVER ITEM" var deleted = false; // 遍历A列查找匹配值 for (var i = 0; i < values.length; i++) { if (values[i][0] == patrimonio) { lista.deleteRow(i + 1); // 行号从1开始,数组索引需+1 ss.toast("EQUIPAMENTO REMOVIDO"); deleted = true; break; // 仅删除第一个匹配项,若要删除所有匹配项可移除break } } if (!deleted) { ss.toast("EQUIPAMENTO NÃO ENCONTRADO"); } } }
关键修改说明:
- 新增
else if分支处理删除逻辑,判断条件对应你需要的"DELETE ITEM"(若为葡萄牙语环境,建议改为"REMOVER ITEM"和提示语保持一致) - 获取A列所有数据行的取值,通过遍历找到与
patrimonio匹配的行 - 使用
deleteRow()方法删除对应行,注意行号从1开始,因此数组索引需要加1 - 添加未找到匹配项时的提示,提升用户体验
- 若需要删除所有匹配项,去掉循环内的
break即可
内容的提问来源于stack exchange,提问作者DimitryART
相关产品推荐
相关产品推荐

