打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Excel VBA(9) – 关于数组
  1. 什么是数组?

  2. 数组的特性 

  3. 声明数组

  4. 给数组赋值

  5. 什么是多维数组

  6. 声明多维数组

  7. 动态数组

  8. 如何创建数组?

    1. Array 函数

    2. Split 函数

    3. Range 对象

  9. 判断及清空数组

  10. 数组的最大最小索引号

  11. 如何将数组写入单元格

     


                                                                                               

1. 什么是数组?

  • 数组就是一个列表或一组数据表

  • 是同类型多个变量的集合


2. 数组的特性

  • 数组中的元素共享一个数组名

  • 数组中的元素按顺序存储在数组中,以索引号区分


3. 声明数组

    Public / Dim 数组名 (a to b) As 数据类型

  • Public 和 Dim 二选一,作用域不同

  • a 和 b 都是整数,是起始和终止索引号

  • 如果括号内只使用一个自然数,则默认起始号是 0

  • 例如,Dim Arr (15) As String,表示数组元素为 0 到 15

  • 如果只写一个自然数,又希望从 1 起始,可以在模块的第一句写入 ''Option Base 1''


4. 给数组赋值


示例 1:

Sub number ()

    Dim arr (1 to 5) As Integer

    arr(1) = 1

    arr(2) = 2

    arr(3) = 3

    arr(4) = 4

    arr(5) = 5

End Sub


示例 2:

Sub number ()

    Dim arr (1 to 5) As Integer, i As Integer

    For i = 1 to 5

        arr(i) = i

    Next

End Sub


5. 什么是多维数组

  • 多维数组是包含多个列表或多组数据表的数组


6. 声明多维数组

    Public / Dim 数组名 (a to b, c to d) As 数据类型

  • 不同维度之间用 “,” 隔开


7. 动态数组

  • 声明数组时,如果不确定数组大小,可以设置为动态数组

  • 动态数组格式为:

    Dim 数组名称 ()

  • 需要的时候,可以用 ReDim 语句指定动态数组大小

  • 定义动态的数组首先要声明,Dim arr(),然后用ReDim命令来设置数组的大小:

    ReDim 数组名称 (a to b) As 数据类型

  • 静态数组同样可以用 ReDim 命令重新设置大小


8. 如何创建数组?


    A. Array 函数

    • 如果用 Array 函数创建数组,定义变量时,变量类型必须为 Variant 类型

    • 数组索引号默认从 0 开始,除非在模块第一句中写入了''Option Base 1''

    

        示例:

        Sub 月份 ()

            Dim arr As Variant

            arr = Array(1,2,3,4,5,6,7,8,9,10,11,12)

        End Sub

    

    B. Split 函数

    • Split 把文本字符串按照指定的分隔符分开,返回一个一维数组

    • 无论是否写入''Option Base 1'',Split 函数定义的数组最小索引号都是 0

    

        示例:

        Sub 月份 ()

            Dim arr As Variant

            arr = Split (''1月,2月,3月,4月,5月,6月,7月,8月,9月,10月,11月,12月'','',''''标红的第2个参数将分隔符定义为'',''

        End Sub

        

    C. Range 对象

    • Range 对象可以把单元格区域的值赋值给变量

    • 单元格区域的大小必须与数组大小相同

        

        示例:

        Sub RngArr ()

            Dim arr As Variant

            arr = Range (''A1:C2'').Value ''将 A1:C2 单元格的值指定给变量 arr

            Range  (''E1:G2'').Value = arr ''将变量 arr 的值写入 E1:G2 单元格

        End Sub

    

9. 判断及清空数组


    A. IsArray 函数

        IsArray(variablename)

    • 判断指定的输入变量是否是数组变量

    • 数返回一个布尔值


    B. Erase 函数

        Erase ArrayName

    • 固定数值数组,数组中的每个元素重置为零

    • 固定字符串数组,数组中的每个元素被重置为零长度 ''''

    • 对象数组,数组中的每个元素被重置为特殊值 Nothing

    

10. 数组的最大最小索引号

  • UBound 和 LBound 函数分别可以计算数组的最大和最小索引号

  • 格式如下:

        UBound (arr)

        LBound (arr)


11. 如何将数组写入单元格

  • 使用 Range 对象


示例:

Sub 月份 ()

    Dim arr As Variant

    arr = Array(1,2,3,4,5,6,7,8,9,10,11,12)

    Range (''A1:A12'').Value = Application.WorksheetFunction.Transpose (arr) '' 数组写入单元格的时候,都是横向按行写入的,如果要竖向按列写入,需要用 Transpose 函数行列转换一下

End Sub

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Excel 墙上那一串串红辣椒——数组入门讲座
VBA中的:常量、变量和数组
VBA学习笔记(4)
VBA数组基础学习
VBA数组(一)
兰版VBA数组入门10讲
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服