返回列表 上一主題 發帖

還是資料比對的問題~

還是資料比對的問題~

不好意思問題如下

希望將A +B +C欄位重複到的資料刪除 複製到 EFG欄位
需要 A+ B+ C  都要比對有重複 才能複製到EFG
謝謝各位大大了~

Q.jpg (20.38 KB)

Q.jpg

回復 1# ffntldj
試試看
  1. Sub Ex()
  2.     Dim D As Object, Rng As Range, R As Range, Ar()
  3.     Set D = CreateObject("SCRIPTING.DICTIONARY")                       '設立DICTIONARY物件
  4.     Set Rng = [A1:C9]                                                  '指定範圍
  5.     For Each R In Rng.Rows                                             'Rows 指定範圍的每一列
  6.         Ar = Application.Transpose(Application.Transpose(R.Cells.Value)) '將R轉置二次轉換為一維陣列
  7.         D(Join(Ar, ",")) = Ar        'DICTIONARY物件 KEY ->Join(AR, ",")  ,DICTIONARY物件 ITEM->Ar
  8.     Next
  9.     [E1].Resize(D.Count, Rng.Columns.Count) = Application.Transpose(Application.Transpose(D.items))
  10.     'D.Count-> D的總數,         Rng.Columns.Count->Rng欄位的總數.
  11.     '每一 D.ITEM 是為一維陣列   D.ITEMs ->D.ITEM的集合.
  12.     'Application.Transpose(Application.Transpose(D.ITEMS)) ->將D.ITEMS 轉置二次後為二為陣列
  13. End Sub
複製代碼

TOP

這個較建議用進階篩選
加上欄標題,進階篩選~勾選"選不重複資料"
AA.gif

TOP

本帖最後由 ffntldj 於 2011-9-15 23:42 編輯

謝謝版大~ 程式碼有點難 我會再研究一下
另外多問一個問題 如果ABC欄位裡頭的資料範圍是不固定的呢?(不只到9列)
Set Rng = [A1:C9]   這要怎麼修改? 謝謝你了~
TO 超級版主
一定得用VBA@@ 沒有辦法 謝謝你的教導 我多學一樣 謝謝

TOP

回復 4# ffntldj
Set Rng = Range("A1").CurrentRegion
CurrentRegion 屬性->傳回 Range 物件,該物件代表目前的區域。目前區域是指以任意空白列及空白欄的組合為邊界的範圍。唯讀。

Set Rng = Range("A1", Range("C1").End(xlDown))
End 屬性-> 傳回 Range 物件,該物件代表包含來源範圍之區域結尾處的儲存格。等於按 END+向上鍵、END+向下鍵、END+向左鍵或 END+向右鍵。唯讀 Range 物件。

TOP

感謝! 程式碼看懂了 很強大! 謝謝版大~

TOP

        靜思自在 : 【為善競爭】人生要為善競爭,分秒必爭。
返回列表 上一主題