网站首页 > 开源技术 正文
一,课题名称:多方式多条件实现数据查询,VBA代码讲解
多方式,多条件指,可以是其中的多个条件,也可以是其中的单一条件,均可以实现相应的查询效果.
二,数据表格说明
数据源表格A列空出,B列是序号,C列是日期,D列是存档编号,E列文件标题/内容摘要,F列类型,G列份数,H是部门,I是经办人员,J是联系电话,K文件审批人,L备注.第一行二行合并是标题行,第三行是题头行,第四行开始保存数据
查询结果显示表列与数据源表格一致,前四行用于录入查询条件,第五行是题头,第六行开始用于显示查询结果.
三,实现查询结果的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
四,VBA代码讲解.
如图示,代码讲解如下:
第一部分是数据源装入数组,核心代码:arr=.range("c4:l" & r)
第二部分是把查询条件赋给中间变量,核心代码,赋值的代码
第三部分是进行条件匹配,if语句与and,like结合实现匹配的代码段
第四部分是把符合匹配条件的结果重新输出.核心代码:range("b6").resize(m,ubound(brr,2))=brr
结尾.
以上代码请学习者结合高清大图的表格样式进行调试,即可以得到属于自己的多条件多方式的数据查询表格的功能.
猜你喜欢
- 2024-10-31 Excel填充字母不会?学学这招吧(excel快速填充字母)
- 2024-10-31 vlookup函数傻瓜式的入门教程,每个人都可以学会
- 2024-10-31 共享数据资源,VBA代码导入已有文本数据文件的方法
- 2024-10-31 Excel中的换行符,这几种用法你会哪些?
- 2024-10-31 一文教你在Excel中利用VBA实现类似「邮件合并」的功能!
- 2024-10-31 【Excel】报表里,如何设置仅保留2位小数的万元自定义格式
- 2024-10-31 Xlookup真好用,同时查找多行多列,这个解决方法也太简单了!
- 2024-10-31 Excel问答:如何将分数转化为字母等级或中文等第(CHAR,MID,INT)
- 2024-10-31 vlookup查找数据,无法区分字母大小写咋办?这3种方法都能搞定
- 2024-10-31 excel中常用查找引用函数用法,超级变态但是好用
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)