美文网首页
数据去重-----VBA字典法

数据去重-----VBA字典法

作者: 数据人阿多 | 来源:发表于2019-03-18 16:34 被阅读0次

在Excel里面数据去重方法比较多,目前用的比较多的有:

1.数据--筛选---高级筛选

2.数据透视表

但以上这两种方法都有局限性,比如需要去重的区域是多列数据


下面介绍一种通过VBA编写宏程序来进行数据去重,可以去重多列数据

先把代码呈现出来,再进行解释:


Sub 字典方法()

    Dim rng As Range       '定义一个区域,用于接收需要去重的单元格区域

    Set rng = Application.InputBox("请指定去重区域", "数据源区域", , , , , , 8)     '可以是一列,也可以是多列

    If rng Is Nothing Then End         '如果没有选择区域,则退出,注:是End,不是End IF



    Dim arr    '定义一个数组,用于存储去重区域的值

    arr = rng.value



    Dim a

    On Error Resume Next         '这里需要忽略错误,后面添加重复键值会引发错误



    Dim dic As Object    

    Set dic = CreateObject("scripting.dictionary")            '引用字典对象



    For Each a In arr

        If Len(a) > 0 Then     

            dic.Add CStr(a), ""     '往字典里面添加键值

        End If

    Next a

    Err.Clear



    Set rng = Application.InputBox("请指定结果存放区域,单个单元格即可", "存放区域", , , , , , 8)



    If Err <> 0 Then End



    rng(1).Resize(dic.Count, 1) = WorksheetFunction.Transpose(dic.Keys)         '往单元格里面写入去重后的数据



End Sub


这里主要运用的字典的键值唯一性,如果向字典里面添加已经存在的键,则会引发错误,所以中间部分需要忽略错误

数组+字典在VBA里面可以提升程序运行效率,如想提升VBA程序运行效率,可多运用数组、字典

相关文章

  • 数据去重-----VBA字典法

    在Excel里面数据去重方法比较多,目前用的比较多的有: 1.数据--筛选---高级筛选 2.数据透视表 但以上这...

  • VBA字典去重

    WPS的设计越来越功能化,虽然缺少excel一些功能,比如sql语句,query等,但是在基础功能的设计上十分实用...

  • IOS 数组去重方法

    1.使用字典key的唯一方法去重;如果key值相同,则不会再往字典中添加数据。 代码实现 打印结果2017-03-...

  • 34、[VBA入门到放弃笔记] 字典:创建和编写字典

    字典是VBA中一个十分有用的对象。 VBA中的字典和现实中的【新华字典】、【成语字典】功能一样,都是用来储存信息,...

  • VBA 知识

    VBA 编程基础 Excel VBA入门(二)数组和字典 Excel VBA 的可变类型Variant ed2k:...

  • VBA 变量去重

    If InStr(Receiver, new_receiver) Then Else ...

  • VBA字典

    字典 使用前需要先加载 工具 -- 引用 -- 浏览 -- 找到scrrun.dll 字典赋值的方法1--Add添...

  • T1.3 Excel-Data Cleansing

    数据清洗 查重去重 缺失值定位与处理 检测数据逻辑 3.1 查询重复数据 A 函数法: COUNTIF(range...

  • VBA字典计数(split数组)--减少循环次数

    有时候,做数据转置的时候,VBA往往粗暴,遍历全部数据,从而使得循环次数增加,减低效率。应用字典计数,可以精确的计...

  • 【python】常用小函数汇总

    1. 字典列表,按字典某个键值去重 2. 字典列表,按字典某个键值排序

网友评论

      本文标题:数据去重-----VBA字典法

      本文链接:https://www.haomeiwen.com/subject/chlbmqtx.html