模糊查询daoimpl代码_多条件模糊查询,除了VLOOKUP,你还有新的选择!

本例是一个跨工作表的多条件模糊的查询案例。

源数据如下:

34e1919116f8c35b06f97b57a1936270.png

目标工作簿及内容:

af293b74efa5249ab090b9f78e4199b1.png

问题描述:

1:源数据,在名为“进价”的工作表内;

2:目标数据,即查询的结构显示工作表,在名为“查询”的工作表内;

3:按照C2、C3 单元格的查询条件,查询出相应的数据;

解决的思路详解:

1:把“进价”的工作表的数据,放入arr数组;

2:用for循环遍历数组;

3:用if判断是否满足查询的条件;

4:把满足条件的数据,放入数组brr;

5:最后在指定的单元格区域内,放入brr;

代码运行的结果如下:

5cecb20316fb35cc84d63e9d6ef24921.gif

代码如下:

6c8b1c7500244f853e2c188f73a2609a.png
Sub test() Dim r%, i% Dim arr, brr With Worksheets("查询") If .Range("c2") = "" Or .Range("c3") = "" Then MsgBox "查询条件不能为空!" Exit Sub End If tj1 = .Range("c2") tj2 = .Range("c3") End With With Worksheets("进价") r = .Cells(.Rows.Count, 1).End(xlUp).Row arr = .Range("a3:k" & r) ReDim brr(1 To UBound(arr), 1 To UBound(arr, 2)) For i = 1 To UBound(arr) If arr(i, 3) = tj1 And arr(i, 4) Like tj2 & "*" Then m = m + 1 For j = 1 To UBound(arr, 2) brr(m, j) = arr(i, j) Next End If Next End With If m = 0 Then MsgBox "没有查询到符合条件数据!" Exit Sub End If With Worksheets("查询") .UsedRange.Offset(5, 0).ClearContents .Range("a6").Resize(UBound(brr), UBound(brr, 2)) = brr End WithEnd Sub

代码解析

1:2~3行 定义变量;

2:4~8行 判断查询条件是否为空;

3:9~10行 查询条件赋值;

4:13行 获取“进价”工作表的最后一行行号;

5:14行 把查询数据的数据源区域放入arr数组;

6:15行 定义一个与arr区域或者说大小一样的brr数组;

7:16~23行 遍历arr数组;

8:17行 判断相应的条件是否符合查询条件(注意用了like进行了模糊的匹配);

9:18行 计算器m;

10:20行 把查询的结果,从arr数组赋值到brr数组;

11:25~27行 如果计数器的结果为0 ,则弹出对话框,没有"没有查询到符合条件数据!";

12:30行 清空指定区域的格式;

13:31行 把brr数组,赋值给指定的区域;

本例思考:

1:本例利用了Like运算符,使查询的运用范围,更加的广泛。

小结:

解决本问题,需要用的知识点:

1:Like运算符

延伸阅读:

Excel VBA 工作表的四种引用方法

Excel VBA 跨工作表模糊查找

点击关注可以更方便的查看Excel VBA的案例文章

私信 视频 可以获取54集VBA入门视频

私信 VBA或 vba 可以获取文章中含VBA代码的Excle文件

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值