【VBA案例006】数据去重

313 字
2 分钟
【VBA案例006】数据去重

大家好!你是否在为数据去重感到烦恼?

今天,我们将分享两种高效的 VBA 方法,帮助你轻松应对数据去重难题。

举个例子。

我们要对以下数据的产品和型号进行数据去重,保留唯一值。

以下是VBA代码,你也可以直接观看下方的视频解析:

方法一:#

Sub 方法一()
Range("f1:h18").RemoveDuplicates Array(1, 2), xlYes
End Sub

方法二:#

Sub 方法二第一次出现的值()
Dim i, j, k
Dim ar, br()
ar = Range("a1:c18")
ReDim br(1 To UBound(ar), 1 To UBound(ar, 2))
Dim d As Object, kw$
Set d = CreateObject("Scripting.Dictionary")
'd.CompareMode = vbTextCompare '不区分大小写
For i = 1 To UBound(ar)
kw = ar(i, 1) & ar(i, 2)
If Not d.exists(kw) Then
k = k + 1
For j = 1 To UBound(br, 2)
br(k, j) = ar(i, j)
Next j
d(kw) = ""
End If
Next i
[f1].Resize(k, UBound(br, 2)) = br
End Sub

方法二:扩展#

Sub 方法二最后值()
Dim i, j, k
Dim ar, br()
ar = Range("a1:c18")
ReDim br(1 To UBound(ar), 1 To UBound(ar, 2))
Dim d As Object, kw$
Set d = CreateObject("Scripting.Dictionary")
'd.CompareMode = vbTextCompare '不区分大小写
For i = 1 To UBound(ar)
kw = ar(i, 1) & ar(i, 2)
d(kw) = i
Next i
Dim dickey
For Each dickey In d.keys
k = k + 1
For j = 1 To UBound(br, 2)
br(k, j) = ar(d(dickey), j)
Next j
Next
[f1].Resize(k, UBound(br, 2)) = br
End Sub

原始链接

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

打赏
【VBA案例006】数据去重
https://fanrich.eu.org/posts/程技/vba/vba案列/vba案例006数据去重/
作者
richfan
发布于
2023-10-23
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
richfan
Hello, I'm richfan.
公告
欢迎来到我的博客!这是一则示例公告。
音乐
封面

音乐

暂未播放

0:000:00
暂无歌词
分类
标签
站点统计
文章
779
分类
8
标签
138
总字数
3,267,679
运行时长
0
最后活动
0 天前
站点信息
构建平台
Cloudflare Pages
博客版本
Firefly v6.13.5
文章许可
CC BY-NC-SA 4.0

文章目录