vba遍历数组_Excel VBA中如何对数组进行去重
在使用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中如何对数组进行去重相关推荐
- php 三维数组合并成二维数组_Excel VBA 数组知识点,数组能不能用好,就看这个你学会没有...
今天和大家要说的是VBA数组的应用,上篇文章我们说的是数组的基础知识点,有不明白的小伙伴可以点击链接进行知识点回顾,今天主要说说数组的几个操作方法,这个是我们以后会经常遇到的,也是经常会使用的方法. ...
- java arraylist与数组转换_java中String,数组,ArrayList三者之间的转换
免费资源网 - https://freexyz.cn/ ArrayList转为String和数组 造一个元素为Integer的ArrayList 为list_int 造一个元素为String 的 Ar ...
- html数组显示,javascript中怎么输出数组?
作为一个程序员对于数组遍历大家都不是很陌生,在开发中我们也经常要处理数组.下面我们来看一下JavaScript如何输出数组. JavaScript中可以通过循环遍历数组,在循环中使用document. ...
- Java 数组在内存中的存储 数组的常见操作
Java虚拟机的内存划分 为了提高运算效率,就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式. JVM的内存划分: 区域名称 作用 寄存器 给CPU使用,和我们开发无关 ...
- java 中数组与list_Java中List与数组相互转换实例分析
这篇文章主要介绍了Java中List与数组相互转换的方法,实例分析了Java中List与数组相互转换中容易出现的问题与相关的解决方法,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例分析了Java ...
- php中声明空数组,总结PHP中初始化空数组的最佳方法
PHP支持三种类型的数组: 索引数组:具有数字索引的数组. 关联数组:具有命名键的数组. 多维数组:它包含特定数组中的一个或多个数组. 注意:为什么声明一个空数组然后将项目推送到该数组总是好的做法? ...
- matlab创建元胞数组对象,MATLAB中胞元数组的用法
胞元数组(cell Arry)的基本组分是胞元(cell),每个胞元本身在数组中是平等的,只能以下标区分.胞元可以存放任何类型.任何大小的数组,如任意维数值数组.字符串数组.符号对象等,而且同一个胞元 ...
- matlab 数组差分,matlab中计算三维数组的差分
满意答案 dqnic2013 2016.04.15 采纳率:50% 等级:7 已帮助:411人 (1)在Matlab中习惯性的会将二维数组中的第一维称为"行"第二维称为&qu ...
- vba mysql·教程_Excel VBA ADO SQL入门教程004:SQL中的Excel表
1. 上期我们聊了SQL常用查询语句中的字段查询,其简化版语法如下: SELECT 字段名 FROM 表名 当时我们说,FROM关键词指明了要获取字段信息的表的名称.倘若数据源是Excel表格,则需要 ...
最新文章
- 当前完整路径_Linux绝对路径和相对路径详解
- 关于一些运算((与运算)、|(或运算)、^(异或运算)........)的本质理解【转】...
- 宁波医院计算机试题及答案,(宁波市第25届小学生计算机程序设计竞赛试题及答案.doc...
- 此实现不是 Windows 平台 FIPS 验证的加密算法的一部分的解决办法方案
- pythonのdjango 缓存
- 「mysql优化专题」90%程序员面试都用得上的索引优化手册(5)
- [leetcode]209. 长度最小的子数组
- C++类的定义要注意最后的分号不要丢了
- 新塘单片机烧写器_新唐单片机烧录工具-Nuvoton ICP Programming Tool下载v3.00.6909官方免费版-ucbug下载站...
- jenkins更换初始登录密码
- vector(向量)的简单操作
- Hyper-v安装虚拟机问题(持续更新)
- model.evaluate() 解释一下
- FPGA error:buffers of the same direction cannot be placed in series.
- java设计模式之Facade模式
- 微信8.0.3测试版来了,TF直装安卓内测也来袭,附地址
- 腾讯企业邮箱十大优势特点 (浅谈腾讯企业邮箱优点之一二三)
- 叮咚! 你有一份节日祝福请查收~
- 如何用matlab视化,MATLAB的图视化功能
- UGUI学习(二):Scroll Rect 滚动区域