打开APP
userphoto
未登录

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

开通VIP
Excel VBA(9)

建议阅读本篇前,先复习一下

Excel VBA(6) – 声明变量那些事

什么是数组?

数组的特性

声明数组

给数组赋值

什么是多维数组

声明多维数组

动态数组

如何创建数组?

Array 函数

Split 函数

Range 对象

判断及清空数组

数组的最大最小索引号

如何将数组写入单元格

1. 什么是数组?

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

是同类型多个变量的集合

2. 数组的特性

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

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

3. 声明数组

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

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

如果括号内只使用一个自然数,则默认起始号是 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功能使用有故障,
可点击这里联系客服!

联系客服