- 帖子
- 4901
- 主題
- 44
- 精華
- 24
- 積分
- 4916
- 點名
- 137
- 作業系統
- Windows 7
- 軟體版本
- Office 20xx
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台北
- 註冊時間
- 2010-4-30
- 最後登錄
- 2025-6-6
               
|
回復 4# rouber590324
試試看- Sub ex()
- Dim A As Range
- Set d = CreateObject("Scripting.Dictionary")
- With Sheets(1)
- For Each A In .Range(.[A1], .[A1].End(xlDown))
- If d(Left(A, 7)) = "" Then
- d(Left(A, 7)) = Join(Application.Transpose(Application.Transpose(A.Resize(, 5))), ";")
- Else
- d(Left(A, 7)) = d(Left(A, 7)) & Chr(10) & Join(Application.Transpose(Application.Transpose(A.Resize(, 5))), ";")
- End If
- Next
- For Each ky In d.keys
- ar = Split(d(ky), Chr(10))
- For Each c In ar
- If Split(c, ";")(4) = "" Then d.Remove ky
- Next
- Next
- On Error Resume Next
- For Each ky In d.keys
- ar = Split(d(ky), Chr(10))
- For Each c In ar
- ay = Split(c, ";")
- ay(3) = CDate(ay(3))
- ay(4) = CDate(ay(4))
- Sheets(2).Cells(r + 1, 1).Resize(, 5) = ay
- r = r + 1
- Next
- Next
- End With
- End Sub
複製代碼 |
|