【VBA案例015】拆分工作表(下)
331 字
2 分钟
【VBA案例015】拆分工作表(下)
大家好!书接上文,继续聊一聊拆分工作表的第二个方法。
众所周知,字典中的值不仅可以是数字、字符串,还可以是数组和对象!
上一个方法是将数组装到了字典里,这第二个方法想必大家已经猜到了,就是把对象装进字典里。

首先简单介绍一下Union函数的使用方法。Union:返回两个或多个区域的合并区域。
语法: Union(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8, Arg9, Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19, Arg20, Arg21, Arg22, Arg23, Arg24, Arg25, Arg26, Arg27, Arg28, Arg29, Arg30) AS Range 参数: Arg1 必需 Range类型。 Arg2 必需 Range类型。 Arg3– Arg30 可选 Variant类型。 返回: Range类型。 另外一点需要强调的是,VBA中给对象变量赋值使用Set,并且Set不能省略。
以下是VBA代码。详细解析请看文末的视频。
Sub range装进字典() 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 Set d(kw) = Union(Range("a1:e1"), Range("a" & i & ":e" & i)) Else Set d(kw) = Union(d(kw), Range("a" & i & ":e" & i)) End If Next i
Dim dk For Each dk In d.keys With ThisWorkbook.Worksheets.Add(after:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count)) .Name = dk d(dk).Copy .[a1] End With Next
End Sub支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!
【VBA案例015】拆分工作表(下)
https://fanrich.eu.org/posts/程技/vba/vba案列/vba案例015拆分工作表下/相关文章智能推荐
1
【VBA案例014】拆分工作表(上)
程技2023-10-23
2
【VBA案例016】拆分工作簿
程技2023-10-23
3
【VBA案例011】合并工作表
程技2023-10-23
4
【VBA案例010】下拉多选
程技2023-10-23
5
【VBA案例012】合并工作簿
程技2023-10-23
随机文章随机推荐
樊笼










