- 帖子
- 231
- 主題
- 55
- 精華
- 0
- 積分
- 293
- 點名
- 0
- 作業系統
- winxp
- 軟體版本
- office2003
- 閱讀權限
- 20
- 性別
- 男
- 來自
- KEELUNG
- 註冊時間
- 2010-7-24
- 最後登錄
- 2018-8-28
|
本帖最後由 oobird 於 2011-10-29 11:25 編輯
你好:
請試試如下:- Sub bb()
-
- Dim mSht As Worksheet
- Dim mRng As Range, E As Range
- Dim ar, mSplit
- Dim mDic As Object
- Dim s%, s1%, s2%
-
-
- Set mDic = CreateObject("scripting.dictionary")
- Set mSht = Worksheets(1)
- With mSht
- Set mRng = .Range("a1", .Range("a" & .Rows.Count).End(xlUp))
-
- For Each E In mRng
-
- If Not mDic.Exists(E.Value) Then
- mDic(E.Value) = E.Offset(, 1).Value
- Else
-
- mDic(E.Value) = mDic(E.Value) & "," & E.Offset(, 1)
-
- End If
-
- Next
-
- s = 1
- s1 = 10
- For Each ar In mDic.Keys
- .Cells(s, s1) = ar
- mSplit = Split(mDic(ar), ",")
- For s2 = 0 To UBound(mSplit)
- .Cells(s, s1 + 1) = mSplit(s2)
- .Cells(1, s1 + 1) = "部門名稱"
- s1 = s1 + 1
- Next
- s = s + 1
- s1 = 10
- Next
-
- End With
-
- End Sub
複製代碼 |
|