- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
13#
發表於 2013-2-28 16:57
| 只看該作者
回復 12# lifedidi
1有辦法照順序- Private Sub UserForm_Initialize() '表單初始化的程序
- Dim D As Object
- Set D = CreateObject("Scripting.Dictionary") '字典物件
- With Sheet1
- For Each a In .Range(.[D7], .[D7].End(xlDown))
- D(a.Value) = ""
- Next
- End With
- ComboBox1.List = D.keys '專案選項內容
- End Sub
- Private Sub ComboBox1_Change() '專案選項內容: 有改變
- If ComboBox1.ListIndex > -1 Then
- ComboBox2資料
- Else '改變的內容不在List中
- ComboBox2.Clear
- End If
- End Sub
- Private Sub ComboBox2資料()
- Dim D As Object
- Set D = CreateObject("Scripting.Dictionary")
- With Sheet1
- For Each a In .Range(.[D7], .[D7].End(xlDown))
- If a.Value = ComboBox1 Then D(a.Offset(, 3).Value) = "" '
- Next
- With .Columns(.Columns.Count).EntireColumn 'Sheet1的最後一欄
- .Clear
- .Cells(1).Resize(D.Count, 1) = Application.WorksheetFunction.Transpose(D.keys)
- '*** 排序
- .Cells(1).Resize(D.Count, 1).Sort Key1:=.Cells(1), Order1:=xlAscending, Header:= _
- xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
- SortMethod:=xlStroke, DataOption1:=xlSortNormal
- '*******
- ComboBox2.List = .Cells(1).Resize(D.Count, 1).Value '工種選項內容
- ComboBox2.Value = ComboBox2.List(0) '工種選項的值
- .Clear
- End With
- End With
- End Sub
複製代碼 2電腦不吃力- Public Sub 清除()
- With Sheet2
- '.Cells(7, 3).Resize(999 - 7 + 1, 25 - 3 + 1) = ""
- .Cells(7, 3).Resize(993, 23) = ""
- 'For i = 7 To 999
- ' For j = 3 To 25
- ' Cells(i, j) = ""
- ' Next
- ' Next
- End With
- End Sub
複製代碼 |
|