图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定制服务。
祝你工作和学习更轻松!
来源:CSDN
作者:snail一路向前
链接:https://blog.csdn.net/qq389445046/article/details/104620771