- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
3#
發表於 2013-7-15 17:13
| 只看該作者
回復 2# jeffrey628litw
試試看- Private Const Sh = "Sheet1" '資料庫 '模組的私用常數
- Dim d As Object '模組的私用變數
- Private Sub UserForm_Initialize()
- Set d = CreateObject("Scripting.Dictionary")
- With Sheets(Sh)
- K = 2
- Do While .Cells(K, "A") <> ""
- d(.Cells(K, "A").Value) = ""
- K = K + 1
- Loop
- End With
- ListBox_1.List = d.KEYS
- End Sub
- Private Sub ListBox_1_Change() '需修改 緊急度 ListBox控制項名稱
- 資料制定 1 '呼叫程式 傳遞參數 : 1
- End Sub
- Private Sub ListBox_2_Change() '需修改 製程 ListBox控制項名稱
- 資料制定 2 '呼叫程式 傳遞參數 : 2
- End Sub
- Private Sub ListBox_3_Change() '需修改 部門 ListBox控制項名稱
- 資料制定 3 '呼叫程式 傳遞參數 : 3
- End Sub
- Private Sub ListBox_4_Change() '需修改 持有者 ListBox控制項名稱
- 資料制定 4 '呼叫程式 傳遞參數 : 2
- End Sub
- Private Sub ListBox_5_Change() '需修改 案件 ListBox控制項名稱
- 資料制定 5 '呼叫程式 傳遞參數 : 2
- End Sub
- Private Sub 資料制定(OB As Integer)
- Dim xValue As String, i As Integer, xCellValue As String
- '***案件基本資料的TextBox 請修改 TextBox1-TextBox9
- For i = 1 To 9
- Controls("TextBox" & i) = "" '案件基本資料的TextBox控制項.清空
- Next
- Set d = CreateObject("Scripting.Dictionary") '重設物件
- For i = 1 To 5
- If i <= OB Then
- xValue = xValue & Controls("ListBox_" & i).Value '結合ListBox的值
- Else
- Controls("ListBox_" & i).Clear 'ListBox清單清除
- End If
- Next
- With Sheets(Sh)
- K = 2
- Do While .Cells(K, "A") <> ""
- xCellValue = Application.Phonetic(.Cells(K, "A").Resize(1, OB)) '結合儲存格的值
- If OB = 5 And xValue = xCellValue Then
- For i = 1 To 9
- Controls("TextBox" & i) = .Cells(K, OB).Offset(, i) '案件基本資料的TextBox控制項.輸入資料
- Next
- Exit Sub
- ElseIf OB < 5 And xValue = xCellValue Then
- d(.Cells(K, OB + 1).Value) = ""
- End If
- K = K + 1
- Loop
- If OB < 5 Then Controls("ListBox_" & OB + 1).List = d.KEYS
- End With
- End Sub
複製代碼 |
|