- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
回復 4# greetingsfromtw
這樣對嗎?- Option Explicit
- Sub Ex()
- Dim D(1 To 3) As Object, Rng As Range, i As Long, S1 As String, S2 As String, AR
- Set D(1) = CreateObject("SCRIPTING.DICTIONARY")
- Set D(2) = CreateObject("SCRIPTING.DICTIONARY")
- Set D(3) = CreateObject("SCRIPTING.DICTIONARY")
- Set Rng = Range("B:P").Rows
- For i = 2 To Rng.Rows.Count
- If Application.CountA(Rng(1).Rows(i)) = 0 Then Exit For
- With Rng.Rows(i)
- If .Cells(2) <> "" Then '**第二點就是C欄必須非空白
- S1 = .Cells(10)
- S2 = .Cells(12)
- If Not D(1).EXISTS(S1) And Not D(2).EXISTS(S2) Then
- '**字典物件1的Key沒有 數值1 且 字典物件2的Key沒有 數值2
- If S1 <> "" And S2 <> "" Then D(3)(S1 & S2) = Rng.Rows(i).Value
- D(1)(S1) = ""
- D(2)(S2) = ""
- ElseIf Not D(1).EXISTS(S1) And D(2).EXISTS(S2) Then
- '**字典物件1的Key沒有 數值1 且 字典物件2的Key 有 數值2
- AR = Rng.Rows(i).Value
- AR(1, 12) = "" '** 不要數值2
- D(3)(S1) = AR
- ElseIf D(1).EXISTS(S1) And Not D(2).EXISTS(S2) Then
- '**字典物件1的Key 有 數值1 且 字典物件2的Key 沒有 數值2
- AR = Rng.Rows(i).Value
- AR(1, 10) = "" '** 不要數值1
- D(3)(S2) = AR
- End If
- End If
- End With
- Next
- If D(3).Count > 0 Then
- Rng(1).Offset(2, Rng.Columns.Count + 2).Resize(D(3).Count, Rng.Columns.Count).Value _
- = Application.Transpose(Application.Transpose(D(3).ITEMS))
- End If
- End Sub
複製代碼 |
|