- 帖子
- 1572
- 主題
- 16
- 精華
- 2
- 積分
- 1521
- 點名
- 0
- 作業系統
- xp
- 軟體版本
- office 2003
- 閱讀權限
- 150
- 性別
- 男
- 註冊時間
- 2010-5-1
- 最後登錄
- 2016-1-13

|
3#
發表於 2011-10-28 15:35
| 只看該作者
userform中:- Private Sub ComboBox1_Change()
- With ComboBox2
- If InStr(d(ComboBox1.Value), ",") = 0 Then
- .Clear
- .AddItem d(ComboBox1.Value)
- Else
- .List = Split(d(ComboBox1.Value), ",")
- End If
- End With
- End Sub
-
- Private Sub ComboBox2_Change()
- With ComboBox3
- If InStr(d2(ComboBox1.Value & ComboBox2.Value), ",") = 0 Then
- .Clear
- .AddItem d2(ComboBox1.Value & ComboBox2.Value)
- Else
- .List = Split(d2(ComboBox1.Value & ComboBox2.Value), ",")
- End If
- End With
- End Sub
- Private Sub ComboBox3_Change()
- With Sheet1
- rng = .UsedRange
- For i = 2 To UBound(rng)
- If rng(i, 1) & rng(i, 2) & rng(i, 3) = ComboBox1.Value & ComboBox2.Value & ComboBox3.Value Then
- x = x + rng(i, 4)
- End If
- Next
- TextBox1.Value = x
- End With
- End Sub
- Private Sub UserForm_Initialize()
- Set d = CreateObject("Scripting.Dictionary")
- Set d2 = CreateObject("Scripting.Dictionary")
- With Sheet1
- rng = .UsedRange
- For i = 2 To UBound(rng)
- If d(rng(i, 1)) = "" Then
- d(rng(i, 1)) = rng(i, 2)
- Else
- If InStr(d(rng(i, 1)), rng(i, 2)) = 0 Then
- d(rng(i, 1)) = d(rng(i, 1)) & "," & rng(i, 2)
- End If
- End If
- If d2(rng(i, 1) & rng(i, 2)) = "" Then
- d2(rng(i, 1) & rng(i, 2)) = rng(i, 3)
- Else
- If InStr(d2(rng(i, 1) & rng(i, 2)), rng(i, 3)) = 0 Then
- d2(rng(i, 1) & rng(i, 2)) = d2(rng(i, 1) & rng(i, 2)) & "," & rng(i, 3)
- End If
- End If
- Next
- ComboBox1.List = d.keys
- End With
- End Sub
複製代碼 Module中- Public d As Object
- Public d2 As Object
複製代碼 |
|