【VBA案例014】拆分工作表(上)

288 字
1 分钟
【VBA案例014】拆分工作表(上)

大家好!如何按照表中的某一列,拆分成独立的Sheet? 如下:

这是一个特别常见常用的问题,本期分享本人用的最多的两个方法中的第一个。

因为确实不太容易理解,所以分为两部分。

这个方法非常的实用,在其他地方也可以发挥很大的作用,所以墙裂推荐大家掌握!

以下是VBA代码。详细解析请看文末的视频。

Sub 数组装进字典()
Dim i, j, k
Dim ar, tmp()
Dim d As Object, kw$
Set d = CreateObject("Scripting.Dictionary")
'd.CompareMode = vbTextCompare '不区分大小写
ar = Range("a1:e" & [a65536].End(3).Row)
Dim irow
For i = 2 To UBound(ar)
kw = ar(i, 4)
If Not d.exists(kw) Then
ReDim tmp(1 To 5000, 1 To UBound(ar, 2) + 1)
For j = 1 To UBound(ar, 2)
tmp(1, j) = ar(1, j)
tmp(2, j) = ar(i, j)
Next
tmp(1, UBound(ar, 2) + 1) = 2
d(kw) = tmp
Else
tmp = d(kw)
irow = tmp(1, UBound(ar, 2) + 1) + 1
For j = 1 To UBound(ar, 2)
tmp(irow, j) = ar(i, j)
Next
tmp(1, UBound(ar, 2) + 1) = irow
d(kw) = tmp
End If
Next i
Dim dk
For Each dk In d.keys
With ThisWorkbook.Worksheets.Add(after:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count))
.Name = dk
tmp = d(dk)
.[a1].Resize(tmp(1, UBound(ar, 2) + 1), UBound(ar, 2)) = tmp
End With
Next
End Sub

原始链接

支持与分享

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

打赏
【VBA案例014】拆分工作表(上)
https://fanrich.eu.org/posts/程技/vba/vba案列/vba案例014拆分工作表上/
作者
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

文章目录