【Excel VBA】数组应用(2)

图1 源数据

如果需要查询所有"编号"为"EH002"的记录,并将查询结果展示在单元格区域中,示例代码如下。

Sub LoopArr()
     Dim avntData() As Variant'声明数组保存数据源
     Dim avntResults(1 To 30, 1 To 4) As Variant
     Dim intCount As Integer'声明变量用于记录符合条件的数量
     Dim i As Integer
     avntData() = Sheets("数据源").Range("a2:d31").Value
     For i = 1 To UBound(avntData(), 1)
         If avntData(i, 2) = "EH002" Then
             intCount = intCount + 1
             avntResults(intCount, 1) = avntData(i, 1)
             avntResults(intCount, 2) = avntData(i, 2)
             avntResults(intCount, 3) = avntData(i, 3)
             avntResults(intCount, 4) = avntData(i, 4)
         End If
     Next i
     Range("A2").Resize(intCount, 4) = avntResults()'将数组写入单元格区域中
 End Sub

第3行代码声明数组用于保存查询结果。由于结果条数未知,所以定义数组的行数大于或等于数据源行数。除此之外,也可以使用定义动态数组的方式。

注:数组输出到单元格区域时,通常与Range.Resize语句配合使用,以便确定目标单元格区域的范围。

运行LoopArr过程,结果如图2所示。

数组的上界与下界

使用Ubound函数获取数组某个维度的上界,也就是最后一个保存数据的位置编号。

Ubound函数的语法格式如下。

UBound(arrayname,维度)

参数arrayname是必需的,其值为一个数组。

参数与维度是可选的,其值指定返回某个维度的界限,此参数应为整数,不指定该参数时,默认值为1.

Lbound和Ubound函数的语法格式完全相同,二者的区别在于Lbound函数返回数组的下标下界,Ubound函数返回数组的下标上界。

图2 罗列符合条件的信息


微信公众号:VBA168

淘宝店铺地址:https://item.taobao.com/item.htm?spm=a1z10.1-c-s.w4004-21233576391.4.1af0683dzrx3oU&id=584940166162

关注微信公众号,每天及时接收Excel VBA经典示例讲解。

淘宝店铺提供Excel定制服务。

祝你工作和学习更轻松!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值