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

Excel VBA中筛选含星号(*)数据失败,如何解决?

解决VBA中筛选包含星号(*)字符串的问题

你的代码返回空结果,是因为当前写法实际在筛选值等于星号的单元格,而不是包含星号的单元格。以下是两种无需修改原数据集的解决方案:

方案1:使用通配符匹配

利用Excel通配符规则,*代表任意字符,~用于转义通配符本身。*~**表示匹配「任意内容+星号+任意内容」的单元格,即包含星号的所有内容:

Option Explicit
Option Compare Text

Sub AutoFilter_on_Asterisk()
    Dim ws As Worksheet, rng As Range
    Set ws = ActiveSheet
    Set rng = ws.Range("A3:AH7000")
    
    ' 筛选包含星号的单元格
    rng.AutoFilter field:=5, Criteria1:="*~**"
End Sub

方案2:使用xlContains运算符

直接指定筛选规则为「包含星号」,用~*转义星号作为匹配目标:

Option Explicit
Option Compare Text

Sub AutoFilter_on_Asterisk()
    Dim ws As Worksheet, rng As Range
    Set ws = ActiveSheet
    Set rng = ws.Range("A3:AH7000")
    
    ' 筛选包含星号的单元格
    rng.AutoFilter field:=5, Criteria1:="~*", Operator:=xlContains
End Sub

原代码问题说明

你之前用Criteria1:="~*", Operator:=xlFilterValues,xlFilterValues通常用于数组多值筛选,这里搭配~*实际是在筛选单元格值恰好是单个星号的内容,和你的数据集(如816、1011)不匹配,因此返回空结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 23:22:47