- 帖子
- 4901
- 主題
- 44
- 精華
- 24
- 積分
- 4916
- 點名
- 88
- 作業系統
- Windows 7
- 軟體版本
- Office 20xx
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台北
- 註冊時間
- 2010-4-30
- 最後登錄
- 2025-4-12
               
|
2#
發表於 2012-4-5 23:52
| 只看該作者
回復 1# luke - Sub ex()
- Dim Ar(), A As Range, C As Range, B As Range
- Set d = CreateObject("Scripting.Dictionary")
- With sheet2
- For Each A In .Range(.[D2], .[D2].End(xlDown))
- x = A & A.Offset(, 1)
- For Each C In .Range(.[F1], .[F1].End(xlToRight))
- d(x & C) = .Cells(A.Row, C.Column)
- Next
- Next
- End With
- With sheet1
- For Each A In .Range(.[A1], .[A1].End(xlDown))
- Set B = A.Resize(, 4)
- p = IIf(d(B(1) & B(2) & B(3)) = "", Replace(B(2), "X", ""), d(B(1) & B(2) & B(3)))
- n = IIf(d(B(1) & B(2) & B(4)) = "", Replace(B(2), "X", ""), d(B(1) & B(2) & B(4)))
- A.Offset(, 5).Resize(, 4) = Array(B(1), B(2), p, n)
- Next
- End With
- End Sub
複製代碼 |
|