Excel VBA和Python双语对照学习
我们从小学习语文,都用过字典。查字典时可以从第一页开始,一页一页地往下找,直到找到为止。这样做明显效率低下,特别是字的位置比较靠后的时候。所以查字典时不这样做,而是根据目录直接跳到对应的页码查找关于字的解释。字典中要查的每个字是唯一的,每个字都有对应的解释说明。
字典中每个元素由一个键值对组成,其中键相当于真实字典中的字,它在整个字典中作为字条是唯一的;值相当于字的解释说明。Python中有字典数据类型,Excel VBA中则需要引外部库创建字典对象。
【Excel VBA】
Excel VBA中没有字典数据类型,也无法直接创建字典对象,而需要通过引用第三方库创建字典对象并通过对该对象编程来实现字典相关的操作。
在Excel VBA中创建字典对象有前期绑定与后期绑定两种方式。
用后期绑定创建字典对象,首先创建一个Object类型的变量,然后用CreateObject函数创建字典对象并用该变量进行引用。使用类似下面的代码创建字典对象dicT。
Dim dicT As Object
Set dicT = CreateObject("Scripting.Dictionary")
然后就可以使用字典对象的属性和方法进行编程,比如向字典对象添加键值对。示例文件的存放路径为Samples\ch08\Excel VBA\创建字典.xlsm。
Sub Test()
Dim dicT As Object
Set dicT = CreateObject("Scripting.Dictionary")
'向字典对象添加键值对
dicT.Add "No001", "刘丹"
dicT.Add "No002", "朱晓琳"
dicT.Add "No003", "马忠"
Debug.Print dicT.Count '3,字典的长度,即键值对的个数
End Sub
用前期绑定创建字典对象,需要按照下面的步骤进行操作:
在Excel主界面的“开发工具”功能面板中单击“Visual Basic”按钮,打开Excel的VBA开发环境。
在“工具”菜单中单击”引用”选项,打开“引用”对话框,如图所示。
在“可使用的引用”列表框中选择“Microsoft Scripting Runtime”核选框。
单击“确定”按钮。
添加相关库的引用后,使用类似下面的代码创建字典对象dicT。
Dim dicT As Scripting.Dictionary
Set dicT=New Scripting.Dictionary
或者
Dim dicT As New Scripting.Dictionary
然后就可以使用字典对象的属性和方法进行编程,比如向字典对象添加键值对。示例文件的存放路径为Samples\ch08\Excel VBA\创建字典.xlsm。
Sub Test2()
Dim dicT As Scripting.Dictionary
Set dicT = New Scripting.Dictionary