mysql多条件查询_Excel实用功能应用,多方式多条件实现数据查询,VBA代码详解

一,课题名称:多方式多条件实现数据查询,VBA代码讲解

多方式,多条件指,可以是其中的多个条件,也可以是其中的单一条件,均可以实现相应的查询效果.

二,数据表格说明

数据源表格A列空出,B列是序号,C列是日期,D列是存档编号,E列文件标题/内容摘要,F列类型,G列份数,H是部门,I是经办人员,J是联系电话,K文件审批人,L备注.第一行二行合并是标题行,第三行是题头行,第四行开始保存数据

查询结果显示表列与数据源表格一致,前四行用于录入查询条件,第五行是题头,第六行开始用于显示查询结果.

d9a888bc31a47c3261f3cc4df0ba876f.png
72c126d07ac32b323942b211f7dde2ea.png

三,实现查询结果的VBA代码

Private Sub CommandButton2_Click()

On Error Resume Next

Dim r, i, m, n, j

Dim arr, brr

With Sheets("信息表")

r = .Cells(.Rows.Count, "f").End(3).Row

arr = .Range("c4:l" & r)

End With

Dim str1 As String, str2 As String, str3 As String, str4 As String

str1 = Sheets("查询表").Range("f1").Value

str2 = Sheets("查询表").Range("f2").Value

str3 = Sheets("查询表").Range("f3").Value

str4 = Sheets("查询表").Range("f4").Value

If str1 = "" And str2 = "" And str3 = "" And str4 = "" Then MsgBox "请输入至少一个查询条件,以方便系统为您查询相应数据!", vbInformation, "系统提示": Exit Sub

ReDim brr(1 To UBound(arr), 1 To UBound(arr, 2) + 1)

For i = 1 To UBound(arr)

If (str1 = "" Or (arr(i, 3) Like "*" & str1 & "*" And str1 <> "")) _

And (str2 = "" Or (arr(i, 4) Like "*" & str2 & "*" And str2 <> "")) _

And (str3 = "" Or (arr(i, 6) Like "*" & str3 & "*" And str3 <> "")) _

And (str4 = "" Or (arr(i, 9) = str4 And str4 <> "")) Then

m = m + 1

For j = 1 To UBound(arr, 2)

brr(m, 1) = m

brr(m, j + 1) = arr(i, j)

Next

End If

Next

If m > 0 Then

Range("B6:l60000") = ""

Range("b6").Resize(m, UBound(brr, 2)) = brr

MsgBox "数据查询完毕", vbInformation, "系统提示"

Else

MsgBox "抱歉 , 没有符合条件的数据 , 请您再次查证所录入的查询条件是否存在 !", vbInformation, "系统提示"

Range("B6:l60000").ClearContents

End If

End Sub

a21fdd0dff26e06444883d18ae6f2881.png

四,VBA代码讲解.

如图示,代码讲解如下:

第一部分是数据源装入数组,核心代码:arr=.range("c4:l" & r)

第二部分是把查询条件赋给中间变量,核心代码,赋值的代码

第三部分是进行条件匹配,if语句与and,like结合实现匹配的代码段

第四部分是把符合匹配条件的结果重新输出.核心代码:range("b6").resize(m,ubound(brr,2))=brr

结尾.

以上代码请学习者结合高清大图的表格样式进行调试,即可以得到属于自己的多条件多方式的数据查询表格的功能.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值