Board logo

標題: 還是資料比對的問題~ [打印本頁]

作者: ffntldj    時間: 2011-9-15 19:16     標題: 還是資料比對的問題~

不好意思問題如下

希望將A +B +C欄位重複到的資料刪除 複製到 EFG欄位
需要 A+ B+ C  都要比對有重複 才能複製到EFG
謝謝各位大大了~
作者: GBKEE    時間: 2011-9-15 21:07

回復 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
複製代碼

作者: oobird    時間: 2011-9-15 22:44

這個較建議用進階篩選
加上欄標題,進階篩選~勾選"選不重複資料"
[attach]7810[/attach]
作者: ffntldj    時間: 2011-9-15 23:40

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

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

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

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

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




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)