边信息(即对应的两个数组值)_Excel VBA解读(152): 数据结构——谈谈数组

学习Excel技术,关注微信公众号:

excelperfect

在VBA中,数组是一种很有用的数据结构。可以在数组中存放相关同类的数据,方便程序进行处理。本文主要较深入地讲解数组的概念。

数组实际上就是一个变量,用来存储多个相同类型的数据。

例如,下面的语句:

Dim payment As Integer

payment= 300

表示在变量payment中存储值300。也就是说,一个变量一次只能存储一个值。

如果我们有多个值需要存储,照这个方法,则需要多个变量:

Dim payment1 As Integer

Dim payment2 As Integer

Dim payment3 As Integer

Dim payment4 As Integer

Dim payment5 As Integer

payment1= 300

payment2= 250

payment3= 350

payment4= 100

payment5= 500

如果存储的值更多,例如有10000个值,则会需要10000个变量。这样,不仅麻烦而且易出错,查找变量的值也很麻烦,今后也难以对代码进行维护,代码也会很冗长。

其实,完全没有这个必要。对于这样的问题,我们可以使用数组轻松解决。假设数值存储在工作表列A中,为演示方便,假设只有5个数据,即数值在A2:A6区域,那么可以使用下面的代码来存储这些数值:

Dim i As Integer

Dim payments(1 To 5) As Integer

For i = 1 To 5

    payments(i) = Range(“A1”).Offset(i).Value

Next i

上面代码中的变量payments就是数组,它一次存储了5个数值。

语句:

Dim payments(1 To 5) As Integer

声明了一个包含5个值的一维数组,数组名后括号中的内容指定了数组索引取值范围。示例中,表明该数组的索引从1开始至5结束。payments数组的值及对应的索引值如下图1所示。

0d3869fccb44b23b56d46820b24e39fa.png

图1

如果上面payments数组存储的是某小区1号楼5名住户1季度的水电费,那么下面的语句:

payments(3)

将得到第3位住户的水电费,即350。

现在,要使用数组分别存储这5名住户一年4个季度的水电费,则可使用下面的语句:

Dim payments(1 To 5,1 To 4) As Integer

这声明了一个二维数组。使用两个循环语句给这个二维数组赋值:

Dim i As Integer

Dim j As Integer

For i = 1 To 5

    For j = 1 To 4

       payments(i,j) = Cells(i + 1, j).Value

    Next j

Next i

如下图2所示,现在payments是二维数组,且存储了单元格A2:D6区域中的数值。图2中,payments(3,2)中存储的值是300。

3769bcd5b75377fdaeac9d378c3ec71d.png

图2

再进一步,如果存储小区3栋楼的用户水电费信息呢?可以使用下面的语句:

Dim payments(1 To 5,1 To 4,1 To 3) As Integer

这声明了一个三维数组。如下图3所示,每栋楼的水电费数据在3个工作表中,可以将它们存储在这个三维数组中。

036fd30b3338c71c1f760eceee60d706.png

图3

当然,这种三维或更多维的数据不常用,只是了解一下,有助于对数组知识的理解。

小结

通过以上的学习,我们知道了数组可以用来方便地存储同一类型的多个值。通过声明数组来确定数组的大小,即能够存储的数据个数,以及存储的数据类型。通过数组索引来方便地获取相应位置的值。并且,可以声明一维、二维或多维数组,但一般常用的还是一维数组和二维数组。

989e8bf8cf5d4a099bc9f06caf0f6210.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值