前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VBA实用小程序68:判断指定单元格区域中是否存在重复值

VBA实用小程序68:判断指定单元格区域中是否存在重复值

作者头像
fanjy
发布2021-03-12 16:49:36
2.2K0
发布2021-03-12 16:49:36
举报
文章被收录于专栏:完美Excel完美Excel

excelperfect

有时候,我们可能想要知道某一区域中是否输入了重复值,这样好做进一步的处理。下面的VBA自定义函数可以帮助我们作出这样的判断:

代码语言:javascript
复制
Function bIfUnique(rng As Range) As Boolean
    Dim oDic As Object
    Dim rngCell As Range
 
    ‘绑定Dictionary对象
    Set oDic =CreateObject("Scripting.Dictionary")
   
   ‘遍历指定单元格区域中的单元格
    For EachrngCell In rng
        On Error Resume Next
        oDic.AddrngCell.Text, rngCell.Text
    Next rngCell
 
    '如果字典元素的数量不等于
    '单元格区域中单元格的数量
    '表明存在重复值,返回True
    '否则不存在重复值,返回False
    If oDic.Count <>rng.Cells.Count Then
        bIfUnique = True
    Else
        bIfUnique = False
    End If
End Function

该函数使用了Dictionary对象,利用了字典对象键值唯一的特性。代码中,参数rng代表要判断的单元格区域。

使用下面的代码来测试该函数:

代码语言:javascript
复制
Sub test()
    If bIfUnique(Range("B2:C4")) Then
        MsgBox "有重复值"
    Else
        MsgBox "没有重复值"
    End If
End Sub

也可以在工作表中像内置的Excel函数那样使用bIfUnique函数,如下图1所示。

图1

注:由于疏忽,先推送了VBA实用小程序69,将VBA实用小程序67和68漏掉了,这两天陆续补上。谢谢有心人“深海”朋友的提醒!

欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-02-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档