增加数组下标_数组下标编号的应用!

本文介绍了如何在VBA中利用数组下标进行数据操作,特别是动态获取数组的上界和下界,以适应不同数量的数据。通过案例展示了如何通过Ubound和Lbound函数在数组中循环处理数据,帮助提升VBA编程效率。
摘要由CSDN通过智能技术生成

我的目标:让中国的大学生走出校门的那一刻就已经具备这些office技能,让职场人士能高效使用office为其服务。支持我,也为自己加油!

通过前面几节的介绍,我们对数组已经有了初步的认识,知道了数组的维度,数组的下标,那实际应用中是如何利用数组的下标的呢?

来看看下面的案例

案例:

41c8bdfafd638ef6444f1b75755bf27f.gif

如上,通过办事处来查询对应的姓名和销量。

思路一:

循环A列办事处区域中的每一个单元格,循环出来后判断其值是否与G3中输入的值相等,如果相等,把该条数据复制到查询结果中去。

思路二:

以前我们讲过,在数组中循环元素要比直接在区域中循环单元格速度快,所以我们先把A列办事处的数据区域读取到数组中,在数组中循环出代表办事处的元素,然后进行判断,判断方法和思路一差不多。

比如上面的案例,我们把A2:C16读取到数组arr中,那么arr为 arr(1 to 15,1 to 3)。

arr(1,1),arr(2,1),arr(3,1),arr(4,1),……表示办事处,可以理解为第n行第1列的值。

arr(1,2),arr(2,2),arr(3,2),arr(4,2),……表示姓名,可以理解为第n行第2列的值。

arr(1,3),arr(2,3),arr(3,3),arr(4,3),……表示销量,可以理解为第n行第3列的值。

假如数据条数是不断增加的,数组中的元素也就会自动增加,要在数组里循环出每行第1列的值,这个行数是动态的,循环时到底该写 1 to 多少呢?

解决上面问题之前,我们先来学习下VBA中获取数组下标上界和下界的两个函数。

Ubound:获取数组的最大下标

Lbound: 获取数组的最小下标

比如:

92f5faeed8e90ef055d9cb1047f548e0.png

Ubound/Lbound中第二个参数,表示第几个维度,不写或写1表示返回第一个维度的最大或者最小下标。

上面案例中的代码如下:

Sub 筛选()Dim arr1, arr2, ts%, i%, n%Range("f5:g16").ClearContentsarr1 = Range("a2", [c2].End(xlDown))ts = Application.CountIf([a:a], [g3])ReDim arr2(1 To ts, 1 To 2)For i = 1 To UBound(arr1)    If arr1(i, 1) = [g3].Value Then      n = n + 1      arr2(n, 1) = arr1(i, 2)      arr2(n, 2) = arr1(i, 3)     End IfNext[f5].Resize(ts, 2) = arr2End Sub

向右滑动可以查看完整代码。

通常情况下,在数组中循环时,我们经常会用UBound来获取数组的最大下标。

知识点:

1、对数组维度,每个维度下标的上界、下界的理解。

2、获取数组下标最小、最大编号的函数。

本节的分享就到这里,鹏哥祝大家每天都有进步。

VBA其实并不难

手机端请扫描

3f3b62bf286bdbbdf203c37503bfad1d.png

电脑端请登录

www.mihong.top

视频教程《带你走进VBA的世界》

从基础开始,一步步带你领略VBA的神奇!

ae7e9fc10e102243c965d619792d2cbb.gif 您点的每个赞,我都认真当成了喜欢
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值