2020-12-16-最近一直写Python,VBA写的都少了,一些知识点都不熟悉了-本次写程序过程中用到的 遗忘的知识点(主要是VBA数组和VBA字典的用法)

本文详细介绍了VBA中的数组和字典的使用方法。数组包括常量数组、动态数组及其操作,如定义、重定义和内容设置。字典部分讲解了如何创建字典、添加和删除元素、检查元素存在性以及常用方法。强调了数组的高效性和字典在数据存储中的灵活性。此外,还提到了数组的`Split`和`Join`方法以及字典的`RemoveAll`方法。

再次写一遍,巩固一下,本次写程序过程中用到的 遗忘的知识点(主要是VBA数组和VBA字典的用法)

1、数组
    1.1 
        '定义一个常量数组
        Dim arr As Variant ' 声明一个变量
        arr = Array("one", "two", "three") '定义一个数组 长度为2 数组元素目前为 arr(0) = "one", arr(1) = "two", arr(2) = "three" 
        ' 此时数组的内容为 arr(0) = "one", arr(1) = "two", arr(2) = "three" 
    
    1.2 
        '定义一个 已确定的动态数组
        dim arr(0 to 1)  '定义一个数组 长度为2  数组元素目前为 arr(0) arr(1)
        arr(0) = "one"  '设置数组元素目前为 arr(0) = "one"
        arr(1) = "two"  '设置数组元素目前为 arr(1) = "two"
        ' 此时数组的内容为 arr(0) = "one"  arr(1) = "two"

    
    1.3
        '定义一个 不确定的动态数组
        dim arr()  '定义一个数组 长度待定
        
        ' 假设你写了一些代码,此时已经确定了数组长度
        
        ReDim arr(0 to 1)'清空原数组内容,重新定义数组长度 长度为2  数组元素目前为 arr(0) arr(1)
        arr(0) = "one"  '设置数组元素目前为 arr(0) = "one"
        arr(1) = "two"  '设置数组元素目前为 arr(1) = "two"
        ' 此时数组的内容为 arr(0) = "one"  arr(1) = "two"
    
    1.4
        '定义一个 前面确定,后面不确定的动态数组,并且不需要之前的数组内容
        Dim arr As Variant ' 声明一个变量
        arr = Array("one", "two", "three") '定义一个数组 长度为2 数组元素目前为 arr(0) = "one", arr(1) = "two", arr(2) = "three"
        
        ' 假设你写了一些代码,此时已经确定了数组长度

        ReDim arr(0 to 1)'清空原数组内容,重新定义数组长度 长度为2  数组元素目前为 arr(0) arr(1)
        arr(0) = "one"  '设置数组元素目前为 arr(0) = "one"
        arr(1) = "two"  '设置数组元素目前为 arr(1) = "two"
        ' 此时数组的内容为 arr(0) = "one"  arr(1) = "two"
    
    1.5
        '定义一个 前面确定,后面不确定的动态数组,并且需要保留原数组的内容
        Dim arr() '首先定义一个动态数组
        arr = Array("one", "two") '定义一个数组 长度为2 数组元素目前为 arr(0) = "one", arr(1) = "two"
        
        ' 假设你写了一些代码,此时已经确定了数组长度

        ReDim Preserve arr(0 To 3) '保留原数组内容,重新定义数组长度 长度为4  数组元素目前为 arr(0) arr(1)
        arr(2) = "three"  '设置数组元素目前为 arr(2) = "three"
        arr(3) = "four"  '设置数组元素目前为 arr(3) = "four"
        ' 此时数组的内容为 arr(0) = "one"  arr(1) = "two"   arr(2) = "three"    arr(3) = "four"

    1.6
        ' 其他数组常用方法

        UBound(arr)  '获取数组最大值
        LBound(arr)  '获取数组最小值
        Join(arr, "+")  '将数组合并为一个字符串,合并字符为 "+"
        
        ' 数组的好处:效率极高,类似于Python的 NumPy库 可以向量化操作,比一个一个的单元格读写要快得多

 另附一张图,用来解释数组的 split用法:(和join不同,join是和  split是分,如图是将arr(0)  即 A,B,C,D,E,F 拆分成 一个小数组 s 详见下图本地窗口)

 

 

2、字典
    2.1
        ' 创建字典
        '后期绑定:方便代码在其他电脑上运行,推荐。
        dim dic as object
        Set dic = CreateObject("scripting.dictionary")
    2.2
        ' 创建字典
        '前期绑定:可以直接声明字典对象,有对象属性和方法的提示,但在其他没有勾选引用的电脑上无法正常运行。
        '引用勾选:VBE窗体-工具-引用-勾选‘Microsoft Scripting Runtime’
        dim dic as New dictionary
    2.3
        with activesheet
            ' 字典增加内容
            'dic.add "内容","数据"

            '清除单个字典键-值对,key是字典的某个需要删除的键
            dic.remove key

            '清空字典,有时候其他过程也需要使用字典,当前过程已经使用完了,但我们又不想重新创建字典对象,这时候我们可以public字典全局变量,再清空字典,供新的过程使用该字典对象。
            dic.removeall
            
            '判断某内容是否存在与字典的键中
            if dic.exists("内容") then debug.print "字符串‘内容’存在于字典的键中"
            
            ' 其他常用方法

            'dic.count:字典计数,字典中一共有多少条记录;  
            'dic.keys:字典的键,写入单元格以行写入,如需以列写入单元格,调用工作表函数transpose转置;
            'dic.items:字典的值;

            'dic.keys()(0) 字典的第一个键
            'dic.keys()(dic.count-1) 字典的最后一个键
            'dic.items()(0) 字典的第一个值
            'dic.items()(dic.count-1) 字典的最后一个值

            ' 注意点:dic.count 是从1开始   dic.keys()(0) 从字典中选取某个键,或者某个值,是从0开始  dic.count-1 结尾  请勿混淆 用法类同数组
        end with

最后引用一张来自ExcelHome的神图

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值