Excel精英培训网

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

[已解决]listbox模糊查询请求增加列

[复制链接]
发表于 2012-7-15 14:15 | 显示全部楼层 |阅读模式
5学分
要求:按键弹出查询框,输入查询条件(代码、名称、拼首码的一部分),筛选出符合条件的记录,显示在查询窗口中浏览。已经实现。
现在是:
如何实现查询多列,比如再增加规格2、规格3?(即显示A\B\C\D\E列)。
另外如何实现显示数据和表头对齐?


我想您可以帮我实现的!先谢谢了!
最佳答案
2012-7-15 16:08
feiaoli 发表于 2012-7-15 15:45
你好 老师,比如 我输入 奥沙 就可以 显示 相应项目,或者 输入 110001 也可以显示 奥沙。

或者输入 注 ...

明白了,重新修改一下代码

ListBox如何增加多列.rar

50.12 KB, 下载次数: 41

最佳答案

查看完整内容

.ColumnCount = 5 在上面这句代码的后面添加一句代码(红色代码上添加的代码),如下面: With .ListBox1 .ColumnCount = 5 .ColumnWidths = "50,169,90,90,80" ReDim atmp(1 To k, 1 To 5) For i = 1 To k For j = 1 To 5 atmp(i, j) = brr(j, i) Next Next .List = atmp End With ...
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2012-7-15 14:15 | 显示全部楼层
.ColumnCount = 5

在上面这句代码的后面添加一句代码(红色代码上添加的代码),如下面:
With .ListBox1
            .ColumnCount = 5
            .ColumnWidths = "50,169,90,90,80"
            ReDim atmp(1 To k, 1 To 5)
            For i = 1 To k
                For j = 1 To 5
                    atmp(i, j) = brr(j, i)
                Next
            Next
            .List = atmp
End With

评分

参与人数 1 +1 收起 理由
feiaoli + 1 很给力!

查看全部评分

回复

使用道具 举报

发表于 2012-7-15 15:27 | 显示全部楼层
个人认为,用listbox控件做查询,不如用listview控件。
重新写段代码,楼主测试一下。

ListBox如何增加多列.rar

52.39 KB, 下载次数: 65

回复

使用道具 举报

 楼主| 发表于 2012-7-15 15:33 | 显示全部楼层
dongqing1998 发表于 2012-7-15 15:27
个人认为,用listbox控件做查询,不如用listview控件。
重新写段代码,楼主测试一下。

非常感谢但是就没有模糊查询了。谢谢
回复

使用道具 举报

发表于 2012-7-15 15:36 | 显示全部楼层
feiaoli 发表于 2012-7-15 15:33
非常感谢但是就没有模糊查询了。谢谢

举个例子说一下你要怎样模糊查询?
回复

使用道具 举报

 楼主| 发表于 2012-7-15 15:45 | 显示全部楼层
dongqing1998 发表于 2012-7-15 15:36
举个例子说一下你要怎样模糊查询?

你好 老师,比如 我输入 奥沙 就可以 显示 相应项目,或者 输入 110001 也可以显示 奥沙。

或者输入 注射 显示 带有注射的所有项目。这一步已经有了!

现在关键是  只是显示 3 列内容,我想 显示 多列 代码怎么改?

先谢谢了

QQ截图2.png
QQ截图20120715153914.png
回复

使用道具 举报

发表于 2012-7-15 16:08 | 显示全部楼层    本楼为最佳答案   
feiaoli 发表于 2012-7-15 15:45
你好 老师,比如 我输入 奥沙 就可以 显示 相应项目,或者 输入 110001 也可以显示 奥沙。

或者输入 注 ...

明白了,重新修改一下代码

ListBox如何增加多列.rar

50.71 KB, 下载次数: 126

评分

参与人数 1 +1 收起 理由
feiaoli + 1 很给力!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2012-7-15 16:35 | 显示全部楼层
dongqing1998 发表于 2012-7-15 16:08
明白了,重新修改一下代码

非常感谢 老师 !问题解决了!!!

另外如果您有时间,帮我看一下我通过修改listbox属性,看到了 后面的 列。

但是 每列的标题 能不能显示在 listbox框里面?

还有,可不可以解释一下您的代码?我留着以后用。(因为我一点也不懂VBA,就是通过我们的网站一点点找的)

再次感谢!!!
属性.png
成功.png
回复

使用道具 举报

 楼主| 发表于 2012-7-15 16:37 | 显示全部楼层
本帖最后由 feiaoli 于 2012-7-15 16:42 编辑
dongqing1998 发表于 2012-7-15 16:20
.ColumnCount = 5

在上面这句代码的后面添加一句代码(红色代码上添加的代码),如下面:

非常感谢!我是通过修改属性达到美观的。不过还是您的美观。

另外 listbox 里面 可以达到 带有列标题吗?
回复

使用道具 举报

发表于 2012-7-15 16:47 | 显示全部楼层
”每列的标题 能不能显示在 listbox框里面?“
换成下面的代码就行了:


  1. Sub 查询()
  2.     Dim arr, i%, j%, iR%, brr(), k%, atmp()
  3.     arr = Range("a1:f" & Range("a65536").End(3).Row)
  4.     iR = UBound(arr)
  5.     ReDim Preserve brr(1 To 5, 0 To 0)
  6.     brr(1, 0) = arr(1, 1): brr(2, 0) = arr(1, 2): brr(3, 0) = arr(1, 4)
  7.     brr(4, 0) = arr(1, 5): brr(5, 0) = arr(1, 6)
  8.     With UserForm1
  9.         For i = 2 To iR
  10.             For j = 1 To 3
  11.                 If InStr(arr(i, j), .TextBox1.Text) Then
  12.                     k = k + 1
  13.                     ReDim Preserve brr(1 To 5, 0 To k)
  14.                     brr(1, k) = arr(i, 1)
  15.                     brr(2, k) = arr(i, 2)
  16.                     brr(3, k) = arr(i, 4)
  17.                     brr(4, k) = arr(i, 5)
  18.                     brr(5, k) = arr(i, 6)
  19.                     Exit For
  20.                 End If
  21.             Next
  22.         Next
  23.         
  24.         If k = 0 Then MsgBox "没有查询到符合条件的数据!", vbCritical, "错误提示": Exit Sub
  25.         
  26.         With .ListBox1
  27.             .ColumnCount = 5
  28.             .ColumnWidths = "50,169,90,90,80"
  29.             .List = Application.Transpose(brr)
  30.         End With
  31.     End With

  32. End Sub

复制代码

评分

参与人数 1 +1 收起 理由
feiaoli + 1 赞一个!

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-8 01:34 , Processed in 0.290577 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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