zoukankan      html  css  js  c++  java
  • Excel vba map/dictionary

    今天在调整一生成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(),不然可能会有潜在的前导或者后导空格。

  • 相关阅读:
    java线程小结1
    String和StringBuffer
    java队列的实现
    java栈的实现
    java链表
    this与super关键字总结
    JVM内存杂记1
    面试题18:删除链表节点
    面试题17:打印从 1 到最大的 n 位数
    面试题16:数值的整数次方
  • 原文地址:https://www.cnblogs.com/zhjh256/p/6428333.html
Copyright © 2011-2022 走看看