You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 18:01:00