【VBA编程】10.自定义集合
自定义集合类型,类似于变量声明,只是要将Dim关键字和New collection关键字搭配起来使用,其语法描述如下:其中集合名的命名方式同于标准变量的命名
Dim 集合名 As New collection
对于已经定义的集合对象,可以使用集合的Add方法向集合中添加元素,语法如下:
集合名.add item[,key] [,before] [,after]
item:是一个必要的参数,表示将要添加到集合的对象名称
Key: 是一个可选参数,表示该对象在集合中以关键字表示,以供访问结合元素时,能够按照关键字访问
before:表示位于一个对象之前,其值为集合中某一对象的索引号
after:表示位于一个对象之后,其值为集合中某一对象的索引号
【环境准备】
首先插入“类模块”

修改“类模块”名称

双击修改后的“类模块”名称,并在代码窗口写下如下代码:

然后,新建插入“模块”
【代码区域】
Sub 自定义集合()
Dim zdyjh As New Collection '自定义一个集合
Dim obj As classname '定义一个对象
Dim num As Integer '定义一个计数器
Set obj = New classname '对一个变量赋值
obj.name = "杨过" '为对象的属性赋值
zdyjh.Add Item:=obj, Key:="first" '将对象添加到集合中
Set obj = New classname '新建一个对象
obj.name = "郭靖"
zdyjh.Add Item:=obj, Key:="second"
Set obj = New classname
obj.name = "黄蓉"
zdyjh.Add Item:=obj, Key:="third"
For i = To
Debug.Print
Next
'输出现有集合中的元素
Debug.Print "现有集合中共有" & CStr(zdyjh.Count) & "个元素,个元素举例如下:"
Debug.Print
num =
For Each tempobj In zdyjh
Debug.Print "第" & CStr(num) & "对象名字为:" & tempobj.name 'CStr函数将数据强制转换为字符
Debug.Print
num = num +
Next
Set obj = New classname
obj.name = "段誉"
zdyjh.Add Item:=obj, Key:="forth", before:=
Debug.Print "在第2个对象之前插入对象后,集合中共有" & CStr(zdyjh.Count) & "个元素,各元素列举如下:"
Debug.Print
num =
For Each tempobj In zdyjh
Debug.Print "第" & CStr(num) & "对象的名字为:" & tempobj.name
Debug.Print
num = num +
Next
Set obj = New classname
obj.name = "胡八一"
zdyjh.Add Item:=obj, Key:="five", after:=
Debug.Print "在第三个对象之后插入对象后,集合共有" & CStr(zdyjh.Count) & "个元素,各元素列举如下:"
Debug.Print
num =
For Each tempobj In zdyjh
Debug.Print "第" & CStr(num) & "对象的名字为:" & tempobj.name
Debug.Print
num = num +
Next
'移除第三个对象
zdyjh.Remove ()
Debug.Print "删除第三个对象之后,集合共有" & CStr(zdyjh.Count) & "个元素,各元素列举如下:"
Debug.Print
num =
For Each tempobj In zdyjh
Debug.Print "第" & CStr(num) & "对象的名字为:" & tempobj.name
Debug.Print
num = num +
Next
End Sub
【结果展示】
立即窗口打印结果为:
|
现有集合中共有3个元素,个元素举例如下: 第1对象名字为:杨过 第2对象名字为:郭靖 第3对象名字为:黄蓉 在第2个对象之前插入对象后,集合中共有4个元素,各元素列举如下: 第1对象的名字为:杨过 第2对象的名字为:段誉 第3对象的名字为:郭靖 第4对象的名字为:黄蓉 在第三个对象之后插入对象后,集合共有5个元素,各元素列举如下: 第1对象的名字为:杨过 第2对象的名字为:段誉 第3对象的名字为:郭靖 第4对象的名字为:胡八一 第5对象的名字为:黄蓉 删除第三个对象之后,集合共有4个元素,各元素列举如下: 第1对象的名字为:杨过 第2对象的名字为:段誉 第3对象的名字为:胡八一 第4对象的名字为:黄蓉 |
【VBA编程】10.自定义集合的更多相关文章
- C#高级编程(第9版) 第10章 集合 笔记
话说 虽然敲过好多代码, 但除了C++,一直没正眼瞧过其它语言.(没办法 谁叫C++既有oop又能自由控制内存呢) 今天 看公司老项目的src,c#的,linq+Dictionary的用法有感.所以找 ...
- VBA编程的工程性规划
看过很多人写的VBA代码,一团一团的,一点规划都没有,为了VBA编程更具工程性,这里讨论一下,并列出自己的一些建议:0.给VBA工程定义一个名字,而非直接使用默认的名称——"VBAProje ...
- vba编程基础2
安装office2010的时候, 最好是 完全安装/完整安装 , 这样可以查阅 excel的 "帮助文档" 帮助文档中包含了更多的/更详细的 参考信息. 普通模块无事件, 只有 子 ...
- vba编程基础1
在主要的编程语言中, 结构体是用大括号来表示 代码段的 范围 界定的. 但是在一些比较"老的"语言中,由于历史原因, 还是使用的 是: 关键字来进行界定代码 的 结构段, 如vba ...
- VBA编程常用词汇英汉对照表
表 20‑1到表 20‑8是VBA编程中使用频率最高的英文单词,按字母排序.词性列中,a表示形容词,n表示名词,v表示动词,p表示介词以及其他词性. 表 20‑1 VBA编程常用词汇表 单词 中文 词 ...
- 《C#本质论》读书笔记(16)构建自定义集合
16.1 更多集合接口 集合类(这里指IEnumerable层次结构)实现的接口层次结构 16.1.1 IList<T>与IDictionary<TKey,TValue> 字典 ...
- UICollectionView(集合视图)以及自定义集合视图
一.UICollectionView集合视图 其继承自UIScrollView. UICollectionView类是iOS6新引进的API,用于展示集合视图,布局 ...
- 集合、拆箱、装箱、自定义集合的foreach
集合部分 参考:http://msdn.microsoft.com/zh-cn/library/0ytkdh4s(v=vs.110).aspx 集合类型是诸如哈希表.队列.堆栈.包.字典和列表等数据集 ...
- 十六、C# 常用集合类及构建自定义集合(使用迭代器)
常用集合类及构建自定义集合 1.更多集合接口:IList<T>.IDictionary<TKey,TValue>.IComparable<T>.ICollectio ...
随机推荐
- Spring中的设计模式2
Spring设计模式分析 工厂模式和单态模式 工厂模式:可以将java对象对象的调用者从被调用者的实现逻辑中分离.调用者只关心被调用者必须满足的某种规则,这种规则我们看做是接口,不必关心实例的具体 ...
- 一个应用 可以有多个application
韩梦飞沙 yue31313 韩亚飞 han_meng_fei_sha 313134555@qq.com 一个应用里面怎样才能有2个application 一个AndroidManifest.xml中可 ...
- [Lydsy1806月赛] 路径统计
题面在这里! xjb想的做法竟然不小心把std艹爆了qwq,我也很无奈啊.... 那接下来就说一下我的神奇做法qwq 如果是经常读我博客的童鞋会发现其实我以前就想要做这个题啦,只不过当时读错题啦... ...
- 【动态规划】POJ1661 Help Jimmy
Help Jimmy Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 11621 Accepted: 3827 Descr ...
- [TCO2013]TrickyInequality
$\newcommand{stirf}[2]{{{#1}\brack{#2}}}$$\newcommand{stirs}[2]{{{#1}\brace{#2}}}$题意:$\sum\limits_{i ...
- 【二分】【字符串哈希】【二分图最大匹配】【最大流】XVII Open Cup named after E.V. Pankratiev Stage 14, Grand Prix of Tatarstan, Sunday, April 2, 2017 Problem I. Minimum Prefix
给你n个字符串,问你最小的长度的前缀,使得每个字符串任意循环滑动之后,这些前缀都两两不同. 二分答案mid之后,将每个字符串长度为mid的循环子串都哈希出来,相当于对每个字符串,找一个与其他字符串所选 ...
- 创建Django与项目介绍
主流web框架总结 a socket b 路由关系 c 模板字符串替换(模板语言) 主流web框架 djange a用别人的 b自己写 c自己写 flask a用别人的 b自己写 c用别人的(jinj ...
- 定时任务框架-quartz
依赖 <!-- 定时任务jar --> <dependency> <groupId>org.quartz-scheduler</groupId> < ...
- 重设WebLogic AdminServer的密码
1.先停止运行的WebLogic Server $ $DOMAIN_HOME/bin/stopWebLogic.sh 2.迁移AdminServer下的数据目录 $ mv $DOMAIN_HOME/s ...
- jquery中remove()与detach()的区别
说到删除节点,马上就会想到remove,不过原来还有一个detach,而且它们还是有区别的,就是detach保留了jquery的数据,而remove就会完全删除干净.所以如果在删除一个dom节点后还想 ...