Board logo

標題: [發問] 比較二張工作表差異部份 [打印本頁]

作者: b9208    時間: 2011-2-9 12:42     標題: 比較二張工作表差異部份

各位先進前輩!
同活頁簿內,相同格式之二張工作表。
依照E欄料號資料,比較二張工作表差異部份。
一、        同日期內同料號之不同資料儲存格填滿黃色。
二、        同日期內不同料號,則整列填滿綠色。
如附檔內說明
謝謝指導

[attach]4671[/attach]
作者: Hsieh    時間: 2011-2-9 15:48

回復 1# b9208
  1. Sub nn()
  2. Dim A As Range
  3. Set d = CreateObject("Scripting.Dictionary")
  4. Set dd = CreateObject("Scripting.Dictionary")
  5. Set dd1 = CreateObject("Scripting.Dictionary")
  6. Set d1 = CreateObject("Scripting.Dictionary")
  7. With Sheet1
  8. For Each A In .UsedRange.Columns("F").Cells
  9. If IsDate(A) Then myday = A
  10. If Not IsEmpty(myday) And A <> "" Then
  11. d(myday & A.Offset(, -1)) = Join(Application.Transpose(Application.Transpose(A.Resize(, 10))), Chr(10))
  12. dd(myday & A.Offset(, -1)) = A.Address
  13. A.EntireRow.Interior.ColorIndex = -4142
  14. End If
  15. Next
  16. End With
  17. With Sheet2
  18. For Each A In .UsedRange.Columns("F").Cells
  19. If IsDate(A) Then myday = A
  20. If Not IsEmpty(myday) And A <> "" Then
  21. d1(myday & A.Offset(, -1)) = Join(Application.Transpose(Application.Transpose(A.Resize(, 10))), Chr(10))
  22. dd1(myday & A.Offset(, -1)) = A.Address
  23. A.EntireRow.Interior.ColorIndex = -4142
  24. End If
  25. Next
  26. End With
  27. For Each ky In d.keys
  28.    If d1.exists(ky) = True Then
  29.       If d(ky) <> d1(ky) Then
  30.          ar = Split(d(ky), Chr(10))
  31.          ar1 = Split(d1(ky), Chr(10))
  32.          For i = 0 To 9
  33.            If ar(i) <> ar1(i) Then
  34.            Sheet1.Range(dd(ky)).Offset(, i).Interior.ColorIndex = 6
  35.            Sheet2.Range(dd(ky)).Offset(, i).Interior.ColorIndex = 6
  36.            End If
  37.          Next
  38.       End If
  39.       Else
  40.       Sheet1.Range(dd(ky)).EntireRow.Interior.ColorIndex = 35
  41.     End If
  42. Next
  43. For Each ky In d1.keys
  44.    If d.exists(ky) = False Then Sheet2.Range(dd1(ky)).EntireRow.Interior.ColorIndex = 35
  45. Next
  46. End Sub
複製代碼

作者: b9208    時間: 2011-2-10 13:18

回復 2# Hsieh
Dear Hsieh
測試後,針對增加或減少料號之整列填滿綠色ok(可以修訂只有資料區域,而不是整列),
但對於同料號其內容資料有異儲存格填滿黃色的部份,如同日內有增加或減少料號列數,則其黃色位置會跑掉。
請參考附檔
非常感謝指導
[attach]4691[/attach]




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