- 帖子
- 967
- 主題
- 0
- 精華
- 0
- 積分
- 1001
- 點名
- 0
- 作業系統
- WIN XP
- 軟體版本
- OFFICE 2003
- 閱讀權限
- 50
- 性別
- 男
- 來自
- 台北
- 註冊時間
- 2010-11-29
- 最後登錄
- 2022-5-17
 
|
3#
發表於 2012-6-8 15:13
| 只看該作者
回復 1# yueh0720 - Sub xx()
- Dim Ar(1 To 1000, 1 To 10)
- Sheets(1).Select
- Br = Array("", "", "Discharge", "charge")
- For Sh = 2 To 3
- Set d = CreateObject("scripting.dictionary")
- [A1].Sort Key1:=[A1], Order1:=xlAscending, Header:=xlGuess
- [A1].AutoFilter Field:=8, Criteria1:=Br(Sh)
- I = 0
- For Each A In Range("A2:A" & [A1].End(xlDown).Row).SpecialCells(xlCellTypeVisible)
- If Not d.exists(A.Value) Then
- I = I + 1: J = 1
- d(A.Value) = A.Offset(0, 1)
- Ar(I, J) = A.Offset(0, 17)
- Else
- J = J + 1
- Ar(I, J) = A.Offset(0, 17)
- End If
- Next
- Sheets(Sh).Cells = ""
- Sheets(Sh).[A1:M1] = Array("Dock-Ch", "Serial No", "Action", 1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
- Sheets(Sh).[A2].Resize(d.Count, 1) = Application.Transpose(d.keys)
- Sheets(Sh).[B2].Resize(d.Count, 1) = Application.Transpose(d.items)
- Sheets(Sh).[C2].Resize(d.Count, 1) = Br(Sh)
- Sheets(Sh).[D2].Resize(d.Count, 2) = Ar
- Set d = Nothing: Erase Ar
- Next Sh
- Sheets(1).AutoFilterMode = False
- End Sub
複製代碼 |
|