博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【VBA编程】10.自定义集合
阅读量:6716 次
发布时间:2019-06-25

本文共 2214 字,大约阅读时间需要 7 分钟。

自定义集合类型,类似于变量声明,只是要将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 = 1 To 2  Debug.Print Next  '输出现有集合中的元素  Debug.Print "现有集合中共有" & CStr(zdyjh.Count) & "个元素,个元素举例如下:"  Debug.Print  num = 1  For Each tempobj In zdyjh    Debug.Print "第" & CStr(num) & "对象名字为:" & tempobj.name 'CStr函数将数据强制转换为字符    Debug.Print    num = num + 1  Next  Set obj = New classname  obj.name = "段誉"  zdyjh.Add Item:=obj, Key:="forth", before:=2  Debug.Print "在第2个对象之前插入对象后,集合中共有" & CStr(zdyjh.Count) & "个元素,各元素列举如下:"  Debug.Print  num = 1  For Each tempobj In zdyjh    Debug.Print "第" & CStr(num) & "对象的名字为:" & tempobj.name    Debug.Print    num = num + 1  Next  Set obj = New classname  obj.name = "胡八一"  zdyjh.Add Item:=obj, Key:="five", after:=3  Debug.Print "在第三个对象之后插入对象后,集合共有" & CStr(zdyjh.Count) & "个元素,各元素列举如下:"  Debug.Print  num = 1  For Each tempobj In zdyjh    Debug.Print "第" & CStr(num) & "对象的名字为:" & tempobj.name    Debug.Print    num = num + 1  Next  '移除第三个对象  zdyjh.Remove (3)  Debug.Print "删除第三个对象之后,集合共有" & CStr(zdyjh.Count) & "个元素,各元素列举如下:"  Debug.Print  num = 1  For Each tempobj In zdyjh    Debug.Print "第" & CStr(num) & "对象的名字为:" & tempobj.name    Debug.Print    num = num + 1  NextEnd Sub

【结果展示】

 立即窗口打印结果为:

现有集合中共有3个元素,个元素举例如下:

第1对象名字为:杨过

第2对象名字为:郭靖

第3对象名字为:黄蓉

在第2个对象之前插入对象后,集合中共有4个元素,各元素列举如下:

第1对象的名字为:杨过

第2对象的名字为:段誉

第3对象的名字为:郭靖

第4对象的名字为:黄蓉

在第三个对象之后插入对象后,集合共有5个元素,各元素列举如下:

第1对象的名字为:杨过

第2对象的名字为:段誉

第3对象的名字为:郭靖

第4对象的名字为:胡八一

第5对象的名字为:黄蓉

删除第三个对象之后,集合共有4个元素,各元素列举如下:

第1对象的名字为:杨过

第2对象的名字为:段誉

第3对象的名字为:胡八一

第4对象的名字为:黄蓉

转载地址:http://jakmo.baihongyu.com/

你可能感兴趣的文章
GetKeyState(), GetAsyncKeystate(), GetKeyboardSlate()
查看>>
函数式编程
查看>>
spring boot mybatis没有扫描jar中的Mapper接口
查看>>
ijkPlayer 集成
查看>>
Python 文件 writelines() 方法
查看>>
背水一战 Windows 10 (76) - 控件(控件基类): Control - 基础知识, 焦点相关, 运行时获取 ControlTemplate 和 DataTemplate 中的元素...
查看>>
比特币的区块结构解析
查看>>
图像滤镜艺术---Glow Filter发光滤镜
查看>>
[离散时间信号处理学习笔记] 14. 多采样率信号处理
查看>>
create-react-app 引入 antd 及 解决 antd 样式无法显示的bug
查看>>
获取图形验证码
查看>>
值得 .NET 开发者了解的15个特性
查看>>
Fresco-Facebook的图片加载框架的使用
查看>>
Android Runtime Stats
查看>>
InstallShield卸载状态
查看>>
CentOS7 修改主机名
查看>>
小工具:天气查询 Vs自定义设置 DevGridControl中GridView排序问题 小工具:火车票查询 小工具:邮件发送 小工具:截图&简单图像处理...
查看>>
11.QT-布局管理器(Box,Grid,Form,Stacked)
查看>>
用 Anaconda 完美解决 Python2 和 python3 共存问题
查看>>
易语言飞扬学习
查看>>