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

Excel VBA高效去重函数开发需求:移除单元格内重复项

自定义Excel VBA函数:REMOVEDUPLICATES

嘿,刚好能帮你解决这个问题!下面这个自定义VBA函数完全符合你的需求——它会处理用, (逗号加空格)分隔的字符串,移除重复元素并保留原有顺序,输出时除了最后一项,每个元素后面都跟, 。

怎么添加这个函数?

  1. 打开你的Excel文件,按下Alt + F11打开VBA编辑器
  2. 在左侧的项目资源管理器里,右键点击你的工作簿名称,选择「插入」→「模块」
  3. 把下面的代码粘贴到新建的模块窗口里:
Function REMOVEDUPLICATES(inputStr As String) As String
    Dim splitArr() As String
    Dim dict As Object
    Dim i As Integer
    
    ' 如果输入为空,直接返回空值
    If inputStr = "" Then
        REMOVEDUPLICATES = ""
        Exit Function
    End If
    
    ' 初始化字典(后期绑定,无需手动引用库)
    Set dict = CreateObject("Scripting.Dictionary")
    ' 按", "拆分输入字符串
    splitArr = Split(inputStr, ", ")
    
    ' 遍历拆分后的数组,把唯一元素存入字典
    For i = LBound(splitArr) To UBound(splitArr)
        ' 忽略空元素(如果有的话)
        If Trim(splitArr(i)) <> "" Then
            ' 字典的键唯一,自动跳过重复项
            If Not dict.Exists(splitArr(i)) Then
                dict.Add splitArr(i), ""
            End If
        End If
    Next i
    
    ' 把字典的键用", "连接起来,输出结果
    REMOVEDUPLICATES = Join(dict.Keys, ", ")
End Function

用法示例

输入单元格A1内容:First_element, Second_element, Third_element, Second_element, Fourth_element
在目标单元格(比如B2)输入公式:=REMOVEDUPLICATES(A1)
输出结果:First_element, Second_element, Third_element, Fourth_element

小提示

  • 如果你的字符串分隔符不是, (比如只有逗号没有空格),可以修改代码里Split(inputStr, ", ")的第二个参数,改成你实际的分隔符就行
  • 函数会自动忽略空元素,比如如果输入里有连续的, ,不会生成空的项
  • 这个函数会保留元素的原始顺序,不会打乱你原来的排列

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:42:29