1.VBA中创建字典。
dictionary是保存
数据键
和
项目对
的对象。
下面代码示范如何创建 Dictionary 对象:
Dim myd As Object
Set myd = CreateObject("Scripting.Dictionary")
d.Add "a", "Athens" ’添加键和项目。
d.Add "b", "Belgrade"
d.Add "c", "Cairo"
...
应用举例
实现从A列中提取B列中不存在元素并放在C列
代码如下:
Sub shaixuan()
Dim a, b
a = 1
b = 2
Set dic = CreateObject("scripting.dictionary")
arr = [A1].CurrentRegion
For i = 1 To UBound(arr)
dic(Cells(i, "A").Value) = ""'把数组第一列作为字典的关键字,对应的项目为空白
'dic(Cells(i, a).Value) = ""
'dic(arr(i, a)) = " "
Next i
For j = 1 To UBound(arr)
If dic.Exists(arr(j, b)) Then'如果数组第二列在字典dic中存在,那么从 Dictionary对象中删除键和项目对。
dic.Remove (arr(j, b))
End If
Next j
[c1].Resize(dic.Count, a) = Application.Transpose(dic.keys)'转置显示
End Sub
补充知识:
1.Resize用于调整指定区域的大小,返回代表调整后的区域。
2.Transpose函数的功能是将数组转置,如数组是一维数组,默认数组成一行排列,转置后成为一列
例子:
Sub Transpose转置()
Dim arr(1 To 100)
For i = 1 To 10
arr(i) = Cells(i, 1)
Next
Range("b1").Resize(UBound(arr)) = Application.Transpose(arr)
End Sub
运行结果:
运行结果如下图所示:
版权声明:本文为qq_43768296原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。