Excel精英培训网

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

[已解决]求简单查询窗体的VBA代码

[复制链接]
发表于 2013-9-3 14:01 | 显示全部楼层 |阅读模式
求简单查询客户名称的窗体代码
最佳答案
2013-9-3 14:46
  1. Dim arrSource, arrResult

  2. Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
  3.     With Me.ListBox1
  4.         If .ListIndex > -1 Then
  5.             Sheet1.Range("b6").Value = .List(.ListIndex)
  6.         Else
  7.             MsgBox "列表框无选项"
  8.         End If
  9.     End With
  10. End Sub

  11. Private Sub TextBox1_Change()

  12.     arrResult = Filter(arrSource, Me.TextBox1.Value, True, vbBinaryCompare)
  13.     If UBound(arrResult) <> -1 Then
  14.         Me.ListBox1.List = arrResult
  15.     Else
  16.         Me.ListBox1.Clear
  17.     End If
  18. End Sub

  19. Private Sub UserForm_Initialize()
  20.     With Sheet1
  21.         arrSource = .Range(.Range("a2"), .Cells(Rows.Count, 1).End(xlUp).Offset(, 1)).Value
  22.         arrSource = WorksheetFunction.Index(arrSource, 0, 1)
  23.         arrSource = WorksheetFunction.Transpose(arrSource)
  24.         Me.ListBox1.List = arrSource
  25.     End With
  26. End Sub
复制代码

求助.rar

12.77 KB, 下载次数: 22

发表于 2013-9-3 14:27 | 显示全部楼层
  1. Dim arrSource, arrResult


  2. Private Sub TextBox1_Change()
  3.         arrResult = Filter(arrSource, Me.TextBox1.Value, True, vbBinaryCompare)
  4.         If UBound(arrResult) <> -1 Then
  5.             Me.ListBox1.List = arrResult
  6.         Else
  7.             Me.ListBox1.Clear
  8.         End If
  9. End Sub


  10. Private Sub UserForm_Initialize()
  11.     With Sheet1
  12.         arrSource = .Range(.Range("a2"), .Cells(Rows.Count, 1).End(xlUp)).Value
  13.         arrSource = WorksheetFunction.Transpose(arrSource)
  14.     End With
  15. End Sub
复制代码
回复

使用道具 举报

发表于 2013-9-3 14:31 | 显示全部楼层
双击后,列表框的内容写入单元格。
  1. Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
  2.     With Me.ListBox1
  3.         Sheet1.Range("b6").Value = .List(.ListIndex)
  4.     End With
  5. End Sub
复制代码
回复

使用道具 举报

发表于 2013-9-3 14:33 | 显示全部楼层
双击方法有缺陷,重新改了下。
  1. Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
  2.     With Me.ListBox1
  3.         If .ListIndex > -1 Then
  4.             Sheet1.Range("b6").Value = .List(.ListIndex)
  5.         Else
  6.             MsgBox "列表框无选项"
  7.         End If
  8.     End With
  9. End Sub
复制代码
回复

使用道具 举报

发表于 2013-9-3 14:37 | 显示全部楼层
求助.rar (20.11 KB, 下载次数: 15)
回复

使用道具 举报

 楼主| 发表于 2013-9-3 14:41 | 显示全部楼层
hwc2ycy 发表于 2013-9-3 14:37

能不能一开始进入的窗体的时候,就把所有的客户名称导入呀,求大神解答
回复

使用道具 举报

发表于 2013-9-3 14:43 | 显示全部楼层
改了下,有个潜在的漏洞。

求助.rar (19.66 KB, 下载次数: 41)
回复

使用道具 举报

发表于 2013-9-3 14:45 | 显示全部楼层
moku2006 发表于 2013-9-3 14:41
能不能一开始进入的窗体的时候,就把所有的客户名称导入呀,求大神解答

可以呀。
回复

使用道具 举报

发表于 2013-9-3 14:46 | 显示全部楼层    本楼为最佳答案   
  1. Dim arrSource, arrResult

  2. Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
  3.     With Me.ListBox1
  4.         If .ListIndex > -1 Then
  5.             Sheet1.Range("b6").Value = .List(.ListIndex)
  6.         Else
  7.             MsgBox "列表框无选项"
  8.         End If
  9.     End With
  10. End Sub

  11. Private Sub TextBox1_Change()

  12.     arrResult = Filter(arrSource, Me.TextBox1.Value, True, vbBinaryCompare)
  13.     If UBound(arrResult) <> -1 Then
  14.         Me.ListBox1.List = arrResult
  15.     Else
  16.         Me.ListBox1.Clear
  17.     End If
  18. End Sub

  19. Private Sub UserForm_Initialize()
  20.     With Sheet1
  21.         arrSource = .Range(.Range("a2"), .Cells(Rows.Count, 1).End(xlUp).Offset(, 1)).Value
  22.         arrSource = WorksheetFunction.Index(arrSource, 0, 1)
  23.         arrSource = WorksheetFunction.Transpose(arrSource)
  24.         Me.ListBox1.List = arrSource
  25.     End With
  26. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2013-9-3 14:55 | 显示全部楼层
hwc2ycy 发表于 2013-9-3 14:46

大神太强了,崇拜
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-24 22:18 , Processed in 0.843202 second(s), 16 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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