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

VBA报错Error 13:Select Case模糊匹配*xxx*文本删除行失败

错误原因

  • Error 13为类型不匹配错误,你代码中直接读取Range("B7:B1048576").Value,这个多单元格区域的Value属性返回的是二维数组,不能直接放入Select Case语句中做判断,类型不匹配直接触发报错。
  • 其次你写的*Transpalette*通配符在Select Case默认逻辑中是做全等判断,不会自动执行模糊匹配,就算传入单个单元格的值也没法正确匹配到含有关键词的内容。
  • 额外逻辑问题:删除行时调用Selection.EntireRow.Delete没有绑定明确的行范围,误选其他区域会导致删错内容;如果从前往后遍历删除,还会出现行号偏移漏删的问题。

解决方案

修正后的可运行代码如下:

Sub 保留B列含关键词的行()
    Dim ws As Worksheet
    Dim lastRow As Long
    Dim i As Long
    ' 可替换为你实际要处理的工作表名称,比如Set ws = Sheets("销售表")
    Set ws = ActiveSheet
    ' 获取B列最后一行有内容的行号,避免遍历整列浪费性能
    lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row
    ' 从最后一行倒序遍历,避免删行导致行号偏移漏判
    For i = lastRow To 7 Step -1
        ' 用Like运算符实现模糊匹配,判断是否包含指定关键词
        If Not ws.Cells(i, "B").Value Like "*Transpalette*" Then
            ws.Rows(i).Delete
        End If
    Next i
End Sub

额外优化说明

  • 如果需要匹配时不区分大小写,可在模块最顶部添加Option Compare Text。
  • 数据量超过1万行的话,可以先把B列内容读入数组批量判断,再统一删除符合条件的行,运行速度会提升数倍。

内容的提问来源于stack exchange,提问作者Iron Dragon

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 23:54:02