- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
4#
發表於 2012-2-19 11:13
| 只看該作者
回復 1# lone_tiger0303 - Option Explicit
- Sub Ex()
- Dim Ar, xA, xF As Range, xS As Integer
- With Sheets("DMS")
- Ar = Application.Transpose(.Range("L1", .[L1].End(xlDown)).Value)
- Ar = Join(Ar, ",")
- Ar = Split(Ar, ",")
- With .Range("IR1")
- .Resize(UBound(Ar)) = Application.Transpose(Ar)
- .Resize(UBound(Ar)).Offset(, 1) = 1
- xA = .Resize(UBound(Ar)).Resize(, 2).Address(, , 0)
- .Offset(, 2).Consolidate xA, xlSum, 0, 1 '彙算出不重複的名單
- Erase Ar
- For Each xA In .Offset(, 2).Resize(Rows.Count, 1).SpecialCells(xlCellTypeConstants)
- If xA.Row <> 1 And xA <> "" Then
- Set xF = Sheets("員工名單").Cells.Find(xA, lookat:=xlWhole)
- If Not xF Is Nothing Then
- ReDim Preserve Ar(xS)
- Ar(xS) = xA
- xS = xS + 1
- End If
- End If
- Next
- .CurrentRegion = ""
- End With
- If xS > 0 Then
- .Range("AI2:AI" & Rows.Count) = ""
- .Range("AI2").Resize(xS).Value = Application.Transpose(Ar)
- End If
- End With
- End Sub
複製代碼 |
|