If OB < 5 Then Controls("ListBox_" & OB + 1).List = d.KEYS
End With
End Sub
複製代碼
作者: jeffrey628litw 時間: 2013-7-15 20:36
先在此感恩版大的幫忙...^^...
版主大大您好:我對於VBA實在很笨拙,請問我將你的程式貼過來後,是這裡有問題嗎?
Private Sub UserForm_Initialize()
Set DY = CreateObject("Scripting.Dictionary")
Set DZ = CreateObject("Scripting.Dictionary")
Set Sht1 = Sheets("Sheet1")
K = Sht1.[A65536].End(xlUp).Row
With Sht1
For Y = 2 To K
Ts = .Range("A" & Y): If DY(Ts) <> "" Then Else DY(Ts) = Ts: ListBox5.AddItem Ts
If .Range("D" & Y) <> "" Then TS1 = .Range("D" & Y)
If DZ(TS1) <> "" Then Else DZ(TS1) = TS1: ListBox1.AddItem TS1
Next
End With
Set DY = Nothing: Set DZ = Nothing: Y = 0: Ts = "": TS1 = "" '這以上為Private Sub ListBox5_Click()和Private Sub ListBox4_Click()的程式
Set DY = CreateObject("Scripting.Dictionary") '這以下為Private Sub ListBox5_Change()和Private Sub ListBox4_Change()的程式
Set DZ = CreateObject("Scripting.Dictionary")
Set Sht1 = Sheets("Sheet1")
K = Sht1.[A65536].End(xlUp).Row
With Sht1
For Y = 2 To K
Ts = .Range("A" & Y): If DY(Ts) <> "" Then Else DY(Ts) = Ts: ListBox5.AddItem Ts
If .Range("D" & Y) <> "" Then TS1 = .Range("D" & Y)
If DZ(TS1) <> "" Then Else DZ(TS1) = TS1: ListBox1.AddItem TS1
Next
End With
Set DY = Nothing: Set DZ = Nothing: Y = 0: Ts = "": TS1 = "" '這以上為Private Sub ListBox5_Change()和Private Sub ListBox4_Change()的程式
yc = ListBox1.BackColor '這以下為Listbox1、Listbox2的程式
wc = TextBox1.BackColor
Set d1 = CreateObject("Scripting.Dictionary")
Set d2 = CreateObject("Scripting.Dictionary")
With Sheets("資料庫")
.Unprotect Password:="69123"
rng = .[A1].CurrentRegion
End With
For r = 2 To UBound(rng)
mycase = "-" & rng(r, 2)
If Trim(rng(r, 1)) <> "" Then
myname = Trim(rng(r, 1))
br = r
d1(myname) = r & "-" & r
Else
d1(myname) = br & "-" & r
End If
d2(myname & mycase) = r
Next r
UserForm2.ListBox1.List = d1.KEYS
UserForm2.CommandButton11.SetFocus '這以上為Listbox1、Listbox2的程式
Private Sub UpdateBox()
d1.RemoveAll <-------------------------------------------------------------------------------------------------這一段程式反黃
d2.RemoveAll
rng = Sheets("Sheet1").[A1].CurrentRegion
For r = 2 To UBound(rng)
mycase = "-" & rng(r, 2)
If Trim(rng(r, 1)) <> "" Then
myname = Trim(rng(r, 1))
br = r
d1(myname) = r & "-" & r
Else
d1(myname) = br & "-" & r
End If
d2(myname & mycase) = r
Next r
UserForm2.ListBox_4.List = d1.keys
End Sub作者: GBKEE 時間: 2013-7-16 18:33