• 【Excel VBA和Python对照学习】创建字典


    Excel VBA和Python双语对照学习

    我们从小学习语文,都用过字典。查字典时可以从第一页开始,一页一页地往下找,直到找到为止。这样做明显效率低下,特别是字的位置比较靠后的时候。所以查字典时不这样做,而是根据目录直接跳到对应的页码查找关于字的解释。字典中要查的每个字是唯一的,每个字都有对应的解释说明。

    字典中每个元素由一个键值对组成,其中键相当于真实字典中的字,它在整个字典中作为字条是唯一的;值相当于字的解释说明。Python中有字典数据类型,Excel VBA中则需要引外部库创建字典对象。

    点这里看视频课程

    【Excel VBA】
    Excel VBA中没有字典数据类型,也无法直接创建字典对象,而需要通过引用第三方库创建字典对象并通过对该对象编程来实现字典相关的操作。
    在Excel VBA中创建字典对象有前期绑定与后期绑定两种方式。
    用后期绑定创建字典对象,首先创建一个Object类型的变量,然后用CreateObject函数创建字典对象并用该变量进行引用。使用类似下面的代码创建字典对象dicT。

    Dim dicT As Object
    Set dicT = CreateObject("Scripting.Dictionary")
    
    • 1
    • 2

    然后就可以使用字典对象的属性和方法进行编程,比如向字典对象添加键值对。示例文件的存放路径为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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    用前期绑定创建字典对象,需要按照下面的步骤进行操作:
     在Excel主界面的“开发工具”功能面板中单击“Visual Basic”按钮,打开Excel的VBA开发环境。
     在“工具”菜单中单击”引用”选项,打开“引用”对话框,如图所示。
    在这里插入图片描述
     在“可使用的引用”列表框中选择“Microsoft Scripting Runtime”核选框。
     单击“确定”按钮。
    添加相关库的引用后,使用类似下面的代码创建字典对象dicT。

    Dim dicT As Scripting.Dictionary
    Set dicT=New Scripting.Dictionary
    
    • 1
    • 2

    或者

    Dim dicT As New Scripting.Dictionary
    
    • 1

    然后就可以使用字典对象的属性和方法进行编程,比如向字典对象添加键值对。示例文件的存放路径为Samples\ch08\Excel VBA\创建字典.xlsm。

    Sub Test2()
      Dim dicT As Scripting.Dictionary
      Set dicT = New Scripting.Dictionary
      
    • 1
    • 2
    • 3
  • 相关阅读:
    神经网络语言模型(NNLM)
    Selenium的WebDriver操作页面的超时或者元素重叠引起的ElementClickInterceptedException
    R7-13 小明找前缀100000(假)
    Ceres 自动求导(AutomaticDerivatives)进阶
    5-整合swagger2
    配置OpenGL
    c# cad二次开发实现注记搜索跟扩展属性搜索,并点击即可定位到位置,添加了界面操作
    【QT】Qt的随身笔记(持续更新...)
    全网最全谷粒商城记录_08、环境-linux安装docker——3、启动docker、检查启动情况和下载哪些镜像、设置开机自启动
    美团大脑百亿级知识图谱的构建及应用进展
  • 原文地址:https://blog.csdn.net/DataLab/article/details/127776175