博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Excel vba map/dictionary
阅读量:6923 次
发布时间:2019-06-27

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

今天在调整一生成java代码的工具时,要用到在不同语言间互转数据类型的逻辑,原来的代码中根据excel记录的行号来计算,再到另外一个collection中获取,个人想着这也太土鳖了,于是搜了下,在vba中,没有map的概念,也没有原生的dictionary类型,是通过CreateObject("Scripting.Dictionary")得到的对象,如下所示:

Dim dict

Set dict = CreateObject("Scripting.Dictionary")
' 增加项目
dict.Add "int", "I"
dict.Add "int64", "L"
dict.Add "double", "B"
' 统计项目数
n = dict.Count
' 删除项目
dict.Remove ("int")
' 判断字典中是否包含关键字
dict.exists ("int64")
' 取关键字对应的值,注意在使用前需要判断是否存在key,否则dict中会多出一条记录
Value = dict.Item("B")
' 修改关键字对应的值,如不存在则创建新的项目
dict.Item("B") = "double"
dict.Item("I") = "int"
' 对字典进行循环
k = dict.keys
v = dict.Items
For i = 0 To dict.Count - 1
key = k(i)
Value = v(i)
MsgBox key & Value
Next
' 删除所有项目

dict.Removeall

注意:如果key是excel单元格,比如.Sheets(iSheet).Cells(iRow, 3),则不要忘了Trim(),不然可能会有潜在的前导或者后导空格。

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

你可能感兴趣的文章
ACM 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 B. Train Seats Reservation
查看>>
lua劈分字符串方法及实例
查看>>
HDU2222:Keywords Search——题解
查看>>
6. 使用Axis开发WebService程序
查看>>
引用 英语学习的六大原则
查看>>
Spring中ClassPathXmlApplicationContext类的简单使用
查看>>
java8的LocalDateTime真心好用(补充Period.between的大坑)
查看>>
XMLHelper类 源码(XML文档帮助类,静态方法,实现对XML文档的创建,及节点和属性的增、删、改、查)...
查看>>
装饰器叠加和有参装饰器
查看>>
基本位运算
查看>>
高精度计算
查看>>
[转] 投资策略及投资体系
查看>>
多张报表导出到一个多sheet页excel
查看>>
MongoDB_pymongo
查看>>
JS 定時刷新父類頁面
查看>>
Android Studio 导入项目 出现安装Error:Cause: failed to find target with hash string 'android-23' 等错误...
查看>>
iPhone 物理尺寸与分辨率
查看>>
软工课后作业01(P18 第四题)
查看>>
maven jetty 内存设置
查看>>
【1247】海选女主角 sdutOJ
查看>>