目录
示例
如图所示,该表为某公司的加工记录。现己建立查询表,希望实现输入查询条件后,即可在查询结果区域显示原始数据的查询结果,并且查询条件的输入可省略。为“查询”按钮编写程序以实现该功能。
代码
使用一个数组作为存储条件的数组,然后循环遍历原始的数据数组,在其中使用循环依次判断各列的数据是否满足条件数组中各个非空的条件,若全部满足,则将该记录存放于结果数组中。
Option Explicit
Sub 条件数量不确定的查找()
Dim arrData
Dim arrResult
Dim arrCri '条件数组
Dim rowData As Long
Dim rowResult As Long
Dim colCri As Long
Dim shtData As Worksheet
Dim shtResult As Worksheet
Dim bln As Boolean
Set shtData = Sheets("sheet1")
Set shtResult = Sheets("sheet2")
'若条件全空,则退出程序
If WorksheetFunction.CountA(shtResult.Range("A3:D3")) = 0 Then Exit Sub
'将原始数据读入数组
With shtData
arrData = .Range("A2:D" & .Range("A1").CurrentRegion.Rows.Count).Value
End With
'将条件读入数