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

多语言术语表Excel实时多列过滤需求:忽略重音字符

多列实时过滤术语表VBA方案(忽略重音)

完整实现代码

' 自定义函数:去除字符串中的重音字符
Private Function RemoveAccents(ByVal inputStr As String) As String
    ' 替换常见重音字符,可按需扩展
    RemoveAccents = WorksheetFunction.Substitute(WorksheetFunction.Substitute( _
        WorksheetFunction.Substitute(WorksheetFunction.Substitute( _
        WorksheetFunction.Substitute(WorksheetFunction.Substitute( _
        WorksheetFunction.Substitute(inputStr, "ä", "a"), "ü", "u"), _
        "ö", "o"), "à", "a"), "é", "e"), "è", "e"), "ê", "e")
End Function

Private Sub TextBox1_Change()
    Application.ScreenUpdating = False
    Dim tbl As ListObject
    Dim inputTxt As String
    Dim targetCols As Range
    Dim row As Range
    Dim colCell As Range
    Dim isMatch As Boolean
    
    Set tbl = ActiveSheet.ListObjects("Glossar")
    inputTxt = LCase(RemoveAccents(TextBox1.Value)) ' 输入文本去重音+转小写统一匹配规则
    
    ' 清除现有过滤状态
    tbl.Range.AutoFilter
    
    ' 空输入时直接显示全部内容
    If inputTxt = "" Then
        Application.ScreenUpdating = True
        Exit Sub
    End If
    
    ' 定义需要搜索的列(示例为德语、英语列,对应表格的第1、2列,可修改列范围)
    Set targetCols = tbl.ListColumns("Deutsch").Range
    Set targetCols = Union(targetCols, tbl.ListColumns("Englisch").Range)
    
    ' 遍历每一行检查匹配
    For Each row In tbl.DataBodyRange.Rows
        isMatch = False
        For Each colCell In row.Cells(targetCols.Columns)
            If LCase(RemoveAccents(colCell.Value)) Like "*" & inputTxt & "*" Then
                isMatch = True
                Exit For
            End If
        Next colCell
        
        ' 控制行的显示/隐藏
        row.EntireRow.Hidden = Not isMatch
    Next row
    
    Application.ScreenUpdating = True
End Sub

核心功能说明

  • 重音忽略:通过RemoveAccents函数将带重音的字符替换为对应基础字符,同时统一转为小写,避免重音影响匹配结果。
  • 多列搜索:通过Union合并需要检索的目标列(德语、英语列),遍历每一行的指定列,只要任意一列匹配关键词就保留该行。
  • 实时响应:绑定TextBox1_Change事件,用户输入时立即触发过滤,实现实时更新效果。

调整提示

  1. 若术语表的列名称不是Deutsch/Englisch,修改代码中ListColumns的参数为实际列名。
  2. 如需添加更多搜索列,继续用Union合并目标列即可。
  3. 可在RemoveAccents函数中补充更多重音字符替换规则,覆盖更多语言场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 20:15:14