前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ExcelVBA字典用法之按列拆分工作表

ExcelVBA字典用法之按列拆分工作表

作者头像
哆哆Excel
发布2022-10-25 13:39:28
1.1K0
发布2022-10-25 13:39:28
举报
文章被收录于专栏:哆哆Excel

ExcelVBA字典用法之按列拆分工作表题

VBA字典基本知识

====字典绑定===

Sub 前期绑定()

Dim dic As New Dictionary

End Sub

sub 后期绑定()

Dim dic

Set dic= CreateObject("Scripting.Dictionary")

End Sub

===字典的6个方法4个属性===

dic.Add '添加关键词,方法

dic.CompareMode = 1'不区分大小写,如果等于0区分大小写

dic.Count '数字典里的关键词有多少个

dic.Exists '判断关键词在字典里是否存在

dic.Item '是指条目

dic.Key '是指关键词

dic.Items '可以返回所有条目的集合,也可以说返回一个从0开始编号的一维数组,是方法,大家不要理解为属性,不能当作对象

dic.Keys '可以返回所有的关键字词集合,也可以说返回一个从0开始编号的一维数组,也是方法

dic.Remove '清除某一个关键词

dic.RemoveAll '清除全部关键词,而数组只能清除数组的值,但不是不能清数组空间结构

.

【问题】一个级的成绩,我想按班别拆分为各个班的成绩各一个工作表

Sub 字典拆分()

Dim active_sht As Worksheet, rng As Range

Set dic = CreateObject("scripting.dictionary")

title_row = 2

f_col = 4

Set active_sht = Worksheets("汇总")

With active_sht

endRow = .Cells.Find("*", .Cells(1, 1), xlValues, xlWhole, xlByRows, xlPrevious).Row '计算最后一个工作表的非空行号

endCol = .Cells.Find("*", .Cells(1, 1), xlValues, xlWhole, xlByColumns, xlPrevious).Column '计算最后一个工作表的非空列号

' MsgBox "行:" & endRow & Chr(10) & "列:" & endCol 'Debug.Print

arr = .Range(.Cells(1, f_col), .Cells(endRow, f_col))

For i = title_row + 1 To UBound(arr)

If Not dic.exists(arr(i, 1)) Then

Set dic(arr(i, 1)) = Union(.Range(.Cells(1, 1), .Cells(title_row, endCol)), .Cells(i, 1).Resize(1, endCol))

Else

Set dic(arr(i, 1)) = Union(dic(arr(i, 1)), .Cells(i, 1).Resize(1, endCol))

End If

'MsgBox i

Next i

End With

With Worksheets("Sheet2")

.Range("a1").Resize(dic.Count, 1) = Application.Transpose(dic.keys)

End With

For j = 0 To dic.Count - 1

Worksheets.Add after:=Worksheets(Sheets.Count)

ActiveSheet.Name = dic.keys()(j)

With ActiveSheet

dic.items()(j).Copy .[a1]

End With

Next j

End Sub

=====今天再一次练习一下字典的用法====

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-06-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 哆哆Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档