• 没时间细看,先引用一个别人的文章。

    http://www.officefans.net/blog/html/12/19812-816.html

    一维数组定义:Dim holidays(10) As Integer

    多维数组定义:Dim worktimes(0 To 9999, 0 To 1) As Date

    数组值的引用:worktimes(i, j)

  • 以前在VBA中Dictionary对象使用小结中有一种字典对象的遍历方法,实际上是将字典的key和value转换为数组,写起来比较麻烦。

    类似于一些动态语言里面的hash遍历,VBA中字典对象比较方便的遍历代码是:

    Dim key

    For Each key In dict

    msgbox dict(key)

    Next

  • 1.点击菜单[插入],选择[类模块],这样就创建了一个新类

    2.在属性窗口中,将默认的"类1"改为合适的名字,如clsPerson

    3.在类clsPerson的代码窗口输入以下代码:

    Private mName As String
    Public age As Integer
    Public birth As Date

    Public Property Get Name() As String
      Name = mName
    End Property

    Public Property Let Name(ByRef vNewValue As String)
      mName = vNewValue
    End Property

    注:为了简单起见,我将部分类成员设置为了public类型(如果设置为Private类型,可以结合使用LET,GET关键字来设置读写权限,感觉和JavaBean很相像)

    4.定义变量,类型为clsPerson,并加入到Dictionary中

    Sub test()
      Dim p As clsPerson
      Dim d
      Set d = CreateObject("Scripting.Dictionary")
      Set p = New clsPerson
      p.Name = "张三"
      p.age = 20
      p.birth = Date
     
      d.Add "01", p
     
      MsgBox d.Item("01").Name
    End Sub


  • VBA中Dictionary对象使用小结

    Dim dict

    ' 创建Dictionary
    Set dict = CreateObject("Scripting.Dictionary")

    ' 增加项目
    dict.Add "A", 300
    dict.Add "B", 400
    dict.Add "C", 500

    ' 统计项目数
    n = dict.Count

    ' 删除项目
    dict.Remove ("A")

    ' 判断字典中是否包含关键字
    dict.exists ("B")

    ' 取关键字对应的值
    Value = dict.Item("B")

    ' 修改关键字对应的值,如不存在则创建新的项目
    dict.Item("B") = 1000
    dict.Item("D") = 800

    ' 对字典进行循环
    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