ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 1188|回复: 8

[求助] 求处理listview与combox的切换获取数据

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-8-14 18:00 | 显示全部楼层 |阅读模式
QQ截图20180814175736.png
QQ截图20180814175756.png
求大神帮忙处理下第一幅图里利用下拉框选择后下边listview里显示对应内容, 各种分类的信息在第二张图内 菜谱系统软件2018-8.zip (83.13 KB, 下载次数: 4)
QQ截图20180814175736.png
QQ截图20180814175756.png

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-8-14 18:01 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
要处理的附件我再上传一下

菜谱系统软件2018-8.zip

83.13 KB, 下载次数: 6

TA的精华主题

TA的得分主题

发表于 2018-8-14 21:02 | 显示全部楼层
全部代码在这儿,供参考:
  1. Option Explicit
  2. Dim Rng As Range, arr(), i%, j%
  3. Dim Item As MSComctlLib.ListItem, n%

  4. Private Sub ComboBox1_Change()
  5.     n = 0: Erase arr
  6.     ListView1.ListItems.Clear
  7.     If ComboBox1.Text = "全部" Then
  8.         For i = 1 To Sheet7.Range("A1").CurrentRegion.Columns.Count Step 5
  9.             Set Rng = Sheet7.Cells(4, i)
  10.             ListItemAdd
  11.         Next
  12.     Else
  13.         Set Rng = Sheet7.Range("A1").CurrentRegion.Find(ComboBox1.Text, LookAt:=xlWhole).Offset(3, -3)
  14.         ListItemAdd
  15.     End If
  16. End Sub

  17. Private Sub ListItemAdd()
  18.     If Not Rng Is Nothing Then
  19.         Do While Rng.Value <> ""
  20.             Set Item = ListView1.ListItems.Add
  21.             n = n + 1: ReDim Preserve arr(1 To 5, 1 To n)
  22.             Item.Text = n 'Rng.Value
  23.             arr(1, n) = n
  24.             For j = 1 To 4
  25.                 Item.SubItems(j) = Rng.Offset(0, j).Value
  26.                 arr(j + 1, n) = Rng.Offset(0, j).Value
  27.             Next
  28.             Set Rng = Rng.Offset(1, 0)
  29.         Loop
  30.     End If
  31. End Sub

  32. Private Sub ListView1_DblClick()
  33.     Rem 改为双击比较好些
  34.     ActiveCell.Value = Item.ListSubItems(1)
  35.     ActiveCell.Offset(0, 2).Value = Item.ListSubItems(2)
  36.     ActiveCell.Offset(0, 1).Activate
  37.     Unload UserForm1
  38. End Sub

  39. Private Sub TextBox1_Change()
  40.     n = 0
  41.     ListView1.ListItems.Clear
  42.     If TextBox1.Text = "" Then Exit Sub
  43.     For i = 1 To UBound(arr, 2)
  44.         If arr(2, i) Like "*" & TextBox1.Text & "*" Then
  45.             Set Item = ListView1.ListItems.Add
  46.             n = n + 1
  47.             Item.Text = n
  48.             For j = 2 To 5
  49.                 Item.SubItems(j - 1) = arr(j, i)
  50.             Next
  51.         End If
  52.     Next
  53. End Sub

  54. Private Sub UserForm_Initialize()
  55.     With ListView1
  56.         .ColumnHeaders.Add , , "编号", 28  '添第一列表头,宽度为60
  57.         .ColumnHeaders.Add , , "名称", 90  '添第二列表头,宽度为55
  58.         .ColumnHeaders.Add , , "单位", 40  '添第三列表头,宽度为55
  59.         .ColumnHeaders.Add , , "报价", 60  '添第三列表头,宽度为55
  60.         .ColumnHeaders.Add , , "议价", 60  '添第三列表头,宽度为55
  61.         .View = lvwReport
  62.         .Gridlines = True    '显示网格线
  63.         .FullRowSelect = True
  64.         .Font.Size = 10
  65.     End With
  66.     TextBox1.SetFocus  '对文字框设置焦点,类似于单击文字框
  67.     Me.Caption = "查询蔬菜信息"
  68.     ComboBox1.List = Array("全部", "蔬菜类", "肉食类", "蛋奶类", "粮类", "油类", "调味品类") '为复合框指定列表内容
  69.     ComboBox1.Value = "蔬菜类"            '为复合框指定显示内容
  70.     'ComboBox1.ListIndex = 0 '  与 ComboBox1.Value= "蔬菜类 只能保留一个
  71. End Sub
复制代码


TA的精华主题

TA的得分主题

发表于 2018-8-14 21:06 | 显示全部楼层
菜谱.rar (69.87 KB, 下载次数: 28)


顺便说一句:管理数据(议价表)应该用二维表,代码简洁得多,也便于数据维护。

关于ListView 可参见 http://club.excelhome.net/thread-703775-1-1.html


TA的精华主题

TA的得分主题

 楼主| 发表于 2018-8-15 07:44 | 显示全部楼层
一指禅62 发表于 2018-8-14 21:06
顺便说一句:管理数据(议价表)应该用二维表,代码简洁得多,也便于数据维护。

关于ListView 可 ...

感谢你的帮助及无私,向你学习,可以方便加个Q么

TA的精华主题

TA的得分主题

发表于 2018-8-15 09:26 | 显示全部楼层
本帖最后由 一指禅62 于 2018-8-15 09:40 编辑
王晓飞 发表于 2018-8-15 07:44
感谢你的帮助及无私,向你学习,可以方便加个Q么

Q不怎么用,我也不常在线。愿共同学习!

建议将议价表改为这样的样式

议价表.zip (6.68 KB, 下载次数: 14)


TA的精华主题

TA的得分主题

 楼主| 发表于 2018-8-20 21:44 | 显示全部楼层
一指禅62 发表于 2018-8-15 09:26
Q不怎么用,我也不常在线。愿共同学习!

建议将议价表改为这样的样式

帮我看下这个,怎么在我这里会显示出每一列最后一个,有点不对,listview中的数据 菜谱2018-8-20(完整).zip (106.61 KB, 下载次数: 8)

TA的精华主题

TA的得分主题

发表于 2018-8-28 09:10 | 显示全部楼层
王晓飞 发表于 2018-8-20 21:44
帮我看下这个,怎么在我这里会显示出每一列最后一个,有点不对,listview中的数据

我没发现问题,截个图传上来看看吧。


TA的精华主题

TA的得分主题

 楼主| 发表于 2018-8-28 14:00 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
一指禅62 发表于 2018-8-28 09:10
我没发现问题,截个图传上来看看吧。

我处理掉了,谢谢哥哥,以后有什么问题,还要麻烦哥哥。QQ:513354964
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-12 23:37 , Processed in 0.025463 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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