vba字典重复key_VBA数组与字典解决方案24讲:对某列数据排重,并回填不重复数据...

大家好,我们今天继续讲解VBA数组与字典解决方案的相关内容,今日讲解的是第24讲:对某列数据的排重,并回填不重复数据的方法。这是在工作中经常用的内容了,通过前几讲的讲解,我们对动态数组有了深刻的认识,今日就是我们利用前几讲内容完成我们实际问题的过程了。

如下面的工作表数据:

6e8e01ed1a101e0d639bdc4af44a1ee5.png

在A列中纯在着大量的重复数据,而且没有一定的规律,如何排除呢?我们看下面的代码:

Sub MyNZsz_7() '第24讲 利用数组对工作表某列数据排重的方法

Dim Arr() As String

Dim Temp() As String

Splarr = Range("A1:A" & Range("A1").End(xlDown).ROW)

ReDim Arr(1)

Arr(1) = Splarr(1, 1)

r = 1

For i = 2 To UBound(Splarr)

Temp = Filter(Arr, Splarr(i, 1))

If UBound(Temp) < 0 Then

r = r + 1

ReDim Preserve Arr(1 To r)

Arr(r) = Splarr(i, 1)

End If

Next

Sheets("24").Range("C1").Resize(r, 1) = Application.Transpose(Arr)

End Sub

代码截图如下:

fae5b180bbdd648d2f2232f1a631de13.png

代码的讲解:

1 Splarr = Range("A1:A" & Range("A1").End(xlDown).ROW) 此处我定义了数组为A列的数据,大家要记住这种写法。

2 Arr(1) = Splarr(1, 1) 此处要注意的是Splarr(1, 1)是一个二维数组,这一点要注意理解,也就是说工作表中的数据都是二维数组的元素。

下面看代码的运行:

711b5a2ef7cfbb6c45e6ecc3cfc4f642.png

运行的时间几乎可以忽略不计,上图我仅仅给出了部分的结果。

今日内容回向:

1 如何从工作表数据给数组赋值?

2 如何理解工作表数据是二维数组?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值