Excel VBA(9) – 关于数组

Excel VBA(9) – 关于数组继变量声明之后,今天来学习一下数组变量的基础知识。作用域不同a和b都是整数,是起始和终止索引号如果括号内只使用一个自然数,则默认起始号是0例如。

大家好,欢迎来到IT知识分享网。

Excel VBA(9) – 关于数组

继变量声明之后,今天来学习一下数组变量的基础知识。

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

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

  1. 什么是数组?
  2. 数组的特性
  3. 声明数组
  4. 给数组赋值
  5. 什么是多维数组
  6. 声明多维数组
  7. 动态数组
  8. 如何创建数组?
  9. Array 函数
  10. Split 函数
  11. Range 对象
  12. 判断及清空数组
  13. 数组的最大最小索引号
  14. 如何将数组写入单元格

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

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/70363.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信