返回列表 上一主題 發帖

比對兩直欄的數值刪除重複橫列問題

本帖最後由 准提部林 於 2016-10-18 10:32 編輯

2000無法正常開啟附檔(格式太多),
只能猜,無法試解!

TOP

回復 8# greetingsfromtw

還是無法正常開啟檔案(格式太多), 大概猜著寫, 能自行更改最好:
  1. Sub T_TEST()
  2. Dim Arr, i&, j%, xD, TK&, TM&, N&
  3. Arr = Range("A2:AD" & Cells(Rows.Count, 1).End(xlUp).Row)
  4. Set xD = CreateObject("Scripting.Dictionary")
  5. For i = 1 To UBound(Arr)
  6.     If Arr(i, 3) = "" Then GoTo 101 'C欄不為空
  7.     TK = "k" & Arr(i, 11):  TM = "m" & Arr(i, 13) '數字各自冠上不同文字區別
  8.     If xD(TK & TM) = 1 Then GoTo 101 '兩欄完全相同且已納入字典, 不處理
  9.     If xD(TK) = 1 Then Arr(i, 11) = "": GoTo 999 'K值相同且非第一筆, 清空K值
  10.     If xD(TM) = 1 Then Arr(i, 13) = "": GoTo 999 'M值相同且非第一筆, 清空M值
  11. 999: N = N + 1
  12.     For j = 1 To UBound(Arr, 2): Arr(N, j) = Arr(i, j): Next '取得更新後的資料放在原陣列
  13.     xD(TK & TM) = 1: xD(TK) = 1: xD(TM) = 1 '納入字典檔並冠上1為識別碼
  14. 101: Next i
  15. If N = 0 Then Exit Sub
  16. [A2:AD2].Resize(UBound(Arr)).Clear '清空原資料
  17. [A2:AD2].Resize(N) = Arr '填入更新資料
  18. End Sub
複製代碼

TOP

        靜思自在 : 為人處世要小心細心,但不要「小心眼」。
返回列表 上一主題