Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1189|回复: 1

[已解决]窗体上关键字模糊查询语句求助!

[复制链接]
发表于 2021-12-22 17:23 | 显示全部楼层 |阅读模式
双击黄色列的任一单元格,出现窗体,在窗体搜索框中输入单元名称或者类别关键字,自动筛选后双击该名称输入到指定单元格!!求助在该代码中插入查询语句,谢谢!附件可下载测试


  1. Dim my()
  2. Dim arrRow()    As Long
  3. Private Sub CommandButton1_Click() '
  4.     Dim endrow As Long
  5.     If Me.TextBox1 = "" Or Me.TextBox2 = "" Then MsgBox "代码,名称不能为空": Exit Sub
  6.     Set T1 = Me.TextBox1: Set T2 = Me.TextBox2
  7.     If Application.CountIf(Sheet4.Range("B:B"), T2) > 0 Then
  8.         MsgBox T2 & "----此单位已存在!": Exit Sub
  9.     End If
  10.    
  11.     With Sheet4
  12.         endrow = .Cells(.Rows.Count, "A").End(xlUp).Row
  13.         endrow = endrow + 1
  14.         .Cells(endrow, "A") = T1
  15.         .Cells(endrow, "B") = T2
  16.     End With
  17.     Me.TextBox1 = "": Me.TextBox2 = ""
  18.     Call UserForm_Initialize
  19.     MsgBox "增加成功"
  20. End Sub

  21. Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
  22.     If ListBox1.ListIndex <= 0 Then Exit Sub
  23.     rtnRow = arrRow(ListBox1.ListIndex)
  24.     Unload Me
  25. End Sub
  26. Private Sub UserForm_Initialize()
  27.     Call SetListBox
  28. End Sub
  29. Sub SetListBox()
  30.     Dim wIdx       As Long
  31.     Dim endrow As Long
  32.     Dim temp()
  33.     Dim i As Long, j As Long
  34.     Erase my
  35.     Erase arrRow
  36.     ListBox1.Clear
  37.     w = ""
  38.     With ListBox1
  39.         .ColumnCount = 2 '设置列数
  40.         For j = 10 To 11
  41.             w = w & Sheet4.Cells(1, j).Width & ";"
  42.         Next
  43.         w = Left(w, Len(w) - 1)
  44.         .ColumnWidths = w
  45.         .ColumnHeads = False '是否显示列标题
  46.         a = Sheet4.Range("A" & Rows.Count).End(xlUp).Row
  47.         If a < 2 Then a = 2
  48.         ReDim Preserve my(1 To 2, 1 To 1)
  49.         my(1, 1) = Sheet4.Range("A1") '
  50.         my(2, 1) = Sheet4.Range("B1") '
  51.         b = 1
  52.         For i = 2 To a
  53.             For j = 10 To 11
  54.                 b = b + 1
  55.                 ReDim Preserve my(1 To 2, 1 To b)
  56.                 my(1, b) = Sheet4.Range("A" & i)
  57.                 my(2, b) = Sheet4.Range("B" & i)
  58.                 wIdx = wIdx + 1
  59.                 ReDim Preserve arrRow(1 To wIdx)
  60.                 arrRow(wIdx) = i
  61.                 Exit For
  62.             Next
  63.         Next
  64.         ReDim temp(1 To b, 1 To 2)
  65.         For i = 1 To b
  66.             For j = 1 To 2
  67.                 temp(i, j) = my(j, i)
  68.             Next
  69.         Next
  70.         ListBox1.List() = temp
  71.     End With
  72. End Sub

复制代码


最佳答案
2021-12-22 20:42
附件请测试,可以输入*号作为通配符进行模糊检索。

求窗体中模糊查询并输入.zip

199.99 KB, 下载次数: 10

发表于 2021-12-22 20:42 | 显示全部楼层    本楼为最佳答案   
附件请测试,可以输入*号作为通配符进行模糊检索。

求窗体中模糊查询并输入.zip

157.9 KB, 下载次数: 13

评分

参与人数 1学分 +2 收起 理由
军3008 + 2 感谢,完美解决了。

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-3 08:59 , Processed in 0.354255 second(s), 15 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表