VBA中 各种数据类型的使用(自定义数据类型Type,数组,数据字典)
作者:互联网
---
'* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
'*
'* 自定义学生对象
'* 做成时间:2020/01/20
'* 做成者: sun
'* 跟新日:
'* 更新者:
'*
'* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Type STUDENT_INFO
'学号
stuNo As String
stuName As String
stuAge As String
stuSexCode As String
End Type
'* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
'*
'* 定义各种数据类型,处理学生对象情报
'* 做成时间:2020/01/20
'* 做成者: sun
'* 跟新日:
'* 更新者:
'*
'* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Sub getStudentInfo()
' 从Excel的Sheet页中取得情报 例子
' Dim sheet As Worksheet
' Set sheet = Worksheets("testSheetName")
' cellValue = sheet.Cells(2, 3) '2C 单元格 "1001,张三,30,1、1002,李四,31,1、1003,XiaoHong,29,2"
' MsgBox cellValue
' 全部学生信息 以字符串形式保存
Dim allStudentInfo As String
allStudentInfo = "1001,张三,30,1、1002,李四,31,1、1003,XiaoHong,29,2"
' 全部学生信息 以数组形式保存【数组使用】
Dim studentInfoList() As String
studentInfoList = Split(allStudentInfo, "、")
' 全部学生姓名信息 以key-学号 value-姓名 的Map形式保存
Dim studentDataList As Object '【数据字典使用-定义】
Set studentDataList = CreateObject("Scripting.Dictionary")
' UBound 返回数组的上界
For i = 0 To UBound(studentInfoList)
' 循环设定每个学生的信息
Dim stuObject As STUDENT_INFO '【自定义数据类型使用】
stuObject = setStudentInfo(studentInfoList(i))
' 以学号作为Key,存储上面设定好的学生的信息
' studentDataList.Add stuObject.stuNo, stuObject '不好用,无法保存自定义对象
studentDataList.Add stuObject.stuNo, stuObject.stuName '【数据字典使用 - 设定值】
Next
' 显示学号是「1002」小明同学的信息
If studentDataList.exists("1002") Then '【数据字典使用 - 取值】
MsgBox studentDataList.Item("1002") '【数据字典使用 - 取值】
End If
End Sub
'* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
'*
'* 设定单个学生对象情报
'* 做成时间:2020/01/20
'* 做成者: sun
'* 跟新日:
'* 更新者:
'*
'* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Public Function setStudentInfo(studentInfo As String) As STUDENT_INFO
' 单个学生的信息
Dim infos() As String
infos = Split(studentInfo, ",")
' 使用上面定义的学生对象
Dim stuObject As STUDENT_INFO
stuObject.stuNo = infos(0)
stuObject.stuName = infos(1)
stuObject.stuAge = infos(2)
stuObject.stuSexCode = infos(3)
' 设定返回值
setStudentInfo = stuObject
End Function
----
sun0322 发布了454 篇原创文章 · 获赞 45 · 访问量 145万+ 关注
标签:Dim,VBA,String,自定义,数据类型,studentDataList,infos,1002,stuObject 来源: https://blog.csdn.net/sxzlc/article/details/104057637