VBA-TG第8节|其他重要基础语法
2019-04-23 本文已影响0人
努力奋斗的durian
最近更新:'2019-05-05'
1.字典对象
2.Select/静态变量
1.字典对象
字典对象主要用于重复数据的统计.
字典对象的作用以及相关属性,具体如下:
在vba中怎么使用字典?
首先要知道字典的关键字以及对应的值
通过dictionary.add k,j来添加字典的元素
该代码在循环的过程会出错,出错的原因是在循环扫描的过程中,会存在相同的关键字的元素.因此需要用dictionary.exists(k)判断是否存在一个关键字为k的元素.
如果有发现存在同样的关键字,要把字典的关键字的值提取出来再加上出手的次数,再写回字典的出手次数.这样循环下来就记录了每个人累计的出手记录.
怎么样把字典的结果显示在屏幕上?首先要知道字典一共有多少个条目?这个可以通过dictionary.count来进行计算.
dictionary.keys生成字典中所有元素的关键字,并返回一维数组.dictionary.items生成字典中所有元素的条目内容,并返回一维数组.
怎么样把数组写到工作表中?
完整的代码如下:
Option Explicit
Sub dicDemo()
Dim i As Integer, k As String, myDic As Object, a(), b()
Set myDic = CreateObject("scripting.dictionary")
For i = 4 To 21
k = Cells(i, 2)
If myDic.exists(k) Then
myDic.Item(k) = myDic.Item(k) + Cells(i, 4).Value
Else
myDic.Add k, Cells(i, 4).Value
End If
Next i
i = myDic.Count
If i > 0 Then
a = myDic.keys()
b = myDic.items()
Range(Cells(4, 8), Cells(i + 3, 8)) = Application.Transpose(a)
Range(Cells(4, 9), Cells(i + 3, 9)) = Application.Transpose(b)
End If
End Sub
其他相关知识点
2.Select/静态变量
2.1Select Case
1)变量在过程之外
Option Explicit
Dim x
Sub a()
x = x + 1
MsgBox x
End Sub
2)变量在过程之内
Option Explicit
Sub a()
Dim x
x = x + 1
MsgBox x
End Sub
两者之间的区别是变量在子过程之外会累计,在子过程之内不会累计.
2.2静态变量
静态变量消失的方式
1.将excel工作簿关闭