在使用Excel VBA的过程中,经常需要使用数组(Array)将数据进行存放,但防止数据出现重复成文了一个问题。这是就可以用到对数组进行去重。

现在我们有一个数组分别是a 这个数组中有部分重复数值,我们希望保留不相同的部分

Dim a As Variant

Dim result As Variant

a = Array(1,2,3,4,5,6,7,1,2,9,21,7)

接下来,我们需要设置一个字典

Set Dic = createObject("Scripting.dictionary") '设置字典

接下来将数组的每一个值都作为字典的Key导入

For i = lbound(a) to Ubound(a)

temp = Dic(a(i))

Next

result = Dic.Keys

这个方法利用了字典的Keys不能重复的原理,自动将重复的结果去除。如果需要对多个数组进行处理,可以将每个需要遍历的数组的值放在单元格中,如A1:(1,2,3,4,5,6,7,1,2), A2:(6,9,7,3,185,13), A3:(1,8,7,8),同时由于需要将多个值放入字典,因此需要确保每次都将值放在数组中一个未占用的位置上,因此这里引入amount对字典中的值进行计数,并放入未占用的位置。

整体代码如下

Dim a As Variant

Dim temp as Variant

Dim result As Variant

amount = 0

For k = 1 to 3

a = Range("A" & k).value

For i = lbound("a" & k) to Ubound("a" & k)

temp(amount) = Dic(a(i))

amount = amount + 1

Next

Next

result = Dic.Keys

Range("A:A").value = Application.WorksheetFunction.Transpose(temp) '最后将结果输出到指定区域

在输出结果的时候使用了Transpose函数,可以省去写循环将数组内的每一个值都导出的步骤。

vba遍历数组_Excel VBA中如何对数组进行去重相关推荐

  1. php 三维数组合并成二维数组_Excel VBA 数组知识点,数组能不能用好,就看这个你学会没有...

    今天和大家要说的是VBA数组的应用,上篇文章我们说的是数组的基础知识点,有不明白的小伙伴可以点击链接进行知识点回顾,今天主要说说数组的几个操作方法,这个是我们以后会经常遇到的,也是经常会使用的方法. ...

  2. java arraylist与数组转换_java中String,数组,ArrayList三者之间的转换

    免费资源网 - https://freexyz.cn/ ArrayList转为String和数组 造一个元素为Integer的ArrayList 为list_int 造一个元素为String 的 Ar ...

  3. html数组显示,javascript中怎么输出数组?

    作为一个程序员对于数组遍历大家都不是很陌生,在开发中我们也经常要处理数组.下面我们来看一下JavaScript如何输出数组. JavaScript中可以通过循环遍历数组,在循环中使用document. ...

  4. Java 数组在内存中的存储 数组的常见操作

    Java虚拟机的内存划分 为了提高运算效率,就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式. JVM的内存划分: 区域名称 作用 寄存器 给CPU使用,和我们开发无关 ...

  5. java 中数组与list_Java中List与数组相互转换实例分析

    这篇文章主要介绍了Java中List与数组相互转换的方法,实例分析了Java中List与数组相互转换中容易出现的问题与相关的解决方法,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例分析了Java ...

  6. php中声明空数组,总结PHP中初始化空数组的最佳方法

    PHP支持三种类型的数组: 索引数组:具有数字索引的数组. 关联数组:具有命名键的数组. 多维数组:它包含特定数组中的一个或多个数组. 注意:为什么声明一个空数组然后将项目推送到该数组总是好的做法? ...

  7. matlab创建元胞数组对象,MATLAB中胞元数组的用法

    胞元数组(cell Arry)的基本组分是胞元(cell),每个胞元本身在数组中是平等的,只能以下标区分.胞元可以存放任何类型.任何大小的数组,如任意维数值数组.字符串数组.符号对象等,而且同一个胞元 ...

  8. matlab 数组差分,matlab中计算三维数组的差分

    满意答案 dqnic2013 2016.04.15 采纳率:50%    等级:7 已帮助:411人 (1)在Matlab中习惯性的会将二维数组中的第一维称为"行"第二维称为&qu ...

  9. vba mysql·教程_Excel VBA ADO SQL入门教程004:SQL中的Excel表

    1. 上期我们聊了SQL常用查询语句中的字段查询,其简化版语法如下: SELECT 字段名 FROM 表名 当时我们说,FROM关键词指明了要获取字段信息的表的名称.倘若数据源是Excel表格,则需要 ...

最新文章

  1. 当前完整路径_Linux绝对路径和相对路径详解
  2. 关于一些运算((与运算)、|(或运算)、^(异或运算)........)的本质理解【转】...
  3. 宁波医院计算机试题及答案,(宁波市第25届小学生计算机程序设计竞赛试题及答案.doc...
  4. 此实现不是 Windows 平台 FIPS 验证的加密算法的一部分的解决办法方案
  5. pythonのdjango 缓存
  6. 「mysql优化专题」90%程序员面试都用得上的索引优化手册(5)
  7. [leetcode]209. 长度最小的子数组
  8. C++类的定义要注意最后的分号不要丢了
  9. 新塘单片机烧写器_新唐单片机烧录工具-Nuvoton ICP Programming Tool下载v3.00.6909官方免费版-ucbug下载站...
  10. jenkins更换初始登录密码
  11. vector(向量)的简单操作
  12. Hyper-v安装虚拟机问题(持续更新)
  13. model.evaluate() 解释一下
  14. FPGA error:buffers of the same direction cannot be placed in series.
  15. java设计模式之Facade模式
  16. 微信8.0.3测试版来了,TF直装安卓内测也来袭,附地址
  17. 腾讯企业邮箱十大优势特点 (浅谈腾讯企业邮箱优点之一二三)
  18. 叮咚! 你有一份节日祝福请查收~
  19. 如何用matlab视化,MATLAB的图视化功能
  20. UGUI学习(二):Scroll Rect 滚动区域

热门文章

  1. VMWare网络模式(Centos7)
  2. [Android开发] RxJava2之路五 - 过滤操作符例子Demo
  3. 【前端之旅】Webpack模块打包工具
  4. 如何使用matlab读取excel中的表格数据
  5. 开博第一篇 往后余生,唯愿你幸福
  6. 多任务学习(MTL)--学习笔记
  7. The Painted Veil
  8. Qt中使用qrc管理和使用资源文件
  9. 亲测这款读书笔记app软件能提高你的阅读兴趣
  10. Nmap常用命令及扫描原理