|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
已经搞定了,刚打开文件的时候列表框即有内容,只是觉得好像代码太复杂了。
在Worksheet_SelectionChange下加了些代码
Dim rng As Range, Sh As Worksheet
Dim str$, i As Byte
Dim Dic As Object
Set Dic = CreateObject("Scripting.Dictionary")
str = TextBox1
Set Dic = CreateObject("Scripting.Dictionary")
Set Sh = Sheets("价格")
i = 1
ListBox1.Clear
If ListBox1.Text = "" Then
For Each rng In Sh.Range("C2", Sh.[C65536].End(3))
Dic(i) = rng.Offset(, 0)
ListBox1.AddItem Format(i, "00.") & rng.Offset(, 0)
i = i + 1
Next
End If
输入的名字不在名册里面,则直接输入名字的代码修改了一下。
上面的代码是将输入的查询码一直加入到列表框的最后一列。
加入当没有找到的时候才加入列表框,即I=1时。
For Each rng In Sh.Range("C2", Sh.[C65536].End(3))
If UCase(PY(rng)) Like UCase("*" & str & "*") Then
Dic(i) = rng.Offset(, 0)
ListBox1.AddItem Format(i, "00.") & rng.Offset(, 0)
i = i + 1
Elseif i=1 then
Dic(i) = TextBox1
ListBox1.AddItem Format(i, "00.") & TextBox1
Exit For
End If
Next
我春节之后才开始学习VBA,请各位指教,我希望代码能更短,谢谢。
[ 本帖最后由 pingdingge 于 2010-3-15 21:56 编辑 ] |
|