|
楼主 |
发表于 2017-11-5 10:36
|
显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
本帖最后由 一指禅62 于 2017-11-5 10:38 编辑
这段代码不影响您的既有设计。核心语句是 :
If IIf(key1 = "" Or key1 = "全部", 1 = 1, arr(i, 1) = key1) And IIf(key2 = "" Or key2 = "全部", 1 = 1, arr(i, 2) = key2) And IIf(key3 = "" Or key3 = "全部", 1 = 1, arr(i, 3) = key3) And (arr(i, 7) Like "*" & key4 & "*" Or arr(i, 8) Like "*" & key4 & "*" Or arr(i, 9) Like "*" & key4 & "*" Or arr(i, 13) Like "*" & key4 & "*") Then
- '模块说明:本代码将显示查询结果的两个控件用参数表示, 可为 【frm文件编辑】、【frm文件查询】通用
- Option Explicit
- Public key1$, key2$, key3$ '依次为 分类、年度、保管期限字段的指定值
- Public key4$ '责任者、文件字号、文件题名、文件日期 字段的关键字查询
- Public Sub FindView(ByRef View As MSComctlLib.ListView, ByRef lblView As MSForms.Label)
- Dim i&, j%, Item As MSComctlLib.ListItem
- Dim arr
- arr = Sheet1.Range("A1").CurrentRegion
- View.ListItems.Clear
- For i = 2 To UBound(arr)
- If IIf(key1 = "" Or key1 = "全部", 1 = 1, arr(i, 1) = key1) _
- And IIf(key2 = "" Or key2 = "全部", 1 = 1, arr(i, 2) = key2) _
- And IIf(key3 = "" Or key3 = "全部", 1 = 1, arr(i, 3) = key3) _
- And (arr(i, 7) Like "*" & key4 & "*" Or arr(i, 8) Like "*" & key4 _
- & "*" Or arr(i, 9) Like "*" & key4 & "*" Or arr(i, 13) Like "*" & key4 & "*") Then
- Set Item = View.ListItems.Add
- Item.Tag = 1
- Item.Text = arr(i, 1)
- For j = 2 To View.ColumnHeaders.Count
- Item.SubItems(j - 1) = arr(i, j)
- Next
- End If
- Next
- lblView.Caption = "共检索出 " & View.ListItems.Count & " 条记录。"
- End Sub
复制代码
|
|