- 帖子
- 4901
- 主題
- 44
- 精華
- 24
- 積分
- 4916
- 點名
- 87
- 作業系統
- Windows 7
- 軟體版本
- Office 20xx
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台北
- 註冊時間
- 2010-4-30
- 最後登錄
- 2025-4-11
               
|
6#
發表於 2013-5-17 10:33
| 只看該作者
回復 5# gameshop - Sub ex()
- Set d = CreateObject("Scripting.Dictionary") '創建字典物件紀錄群組日期差
- Set d1 = CreateObject("Scripting.Dictionary") '創建字典物件紀錄群組最小日期差
- With Sheets(1) '資料工作表
- ar = .Range("A1").CurrentRegion '資料所有範圍記錄到陣列
- d1(ar(1, 1)) = Application.Index(ar, 1) '建立標題列
- For i = 2 To UBound(ar, 1) '從第2列開始迴圈
- s = Date - ar(i, 2) '日期差
- If s >= 0 Then '日期差為正值
- If IsEmpty(d(ar(i, 1))) Then d(ar(i, 1)) = s '假如群組還沒資料,就將日期差加入群組
- If s <= d(ar(i, 1)) Then d(ar(i, 1)) = s: d1(ar(i, 1)) = Application.Index(ar, i) '比較日期差後記錄該列資料到字典對應群組內
- End If
- Next
- End With
- Sheets(2).Range("A1").CurrentRegion.ClearContents '清除舊有資料
- Sheets(2).[A1].Resize(d1.Count, UBound(ar, 2)) = Application.Transpose(Application.Transpose(d1.items)) '寫入資料
- End Sub
複製代碼 |
|