標題:
[發問]
比較二張工作表差異部份
[打印本頁]
作者:
b9208
時間:
2011-2-9 12:42
標題:
比較二張工作表差異部份
各位先進前輩!
同活頁簿內,相同格式之二張工作表。
依照E欄料號資料,比較二張工作表差異部份。
一、 同日期內同料號之不同資料儲存格填滿黃色。
二、 同日期內不同料號,則整列填滿綠色。
如附檔內說明
謝謝指導
[attach]4671[/attach]
作者:
Hsieh
時間:
2011-2-9 15:48
回復
1#
b9208
Sub nn()
Dim A As Range
Set d = CreateObject("Scripting.Dictionary")
Set dd = CreateObject("Scripting.Dictionary")
Set dd1 = CreateObject("Scripting.Dictionary")
Set d1 = CreateObject("Scripting.Dictionary")
With Sheet1
For Each A In .UsedRange.Columns("F").Cells
If IsDate(A) Then myday = A
If Not IsEmpty(myday) And A <> "" Then
d(myday & A.Offset(, -1)) = Join(Application.Transpose(Application.Transpose(A.Resize(, 10))), Chr(10))
dd(myday & A.Offset(, -1)) = A.Address
A.EntireRow.Interior.ColorIndex = -4142
End If
Next
End With
With Sheet2
For Each A In .UsedRange.Columns("F").Cells
If IsDate(A) Then myday = A
If Not IsEmpty(myday) And A <> "" Then
d1(myday & A.Offset(, -1)) = Join(Application.Transpose(Application.Transpose(A.Resize(, 10))), Chr(10))
dd1(myday & A.Offset(, -1)) = A.Address
A.EntireRow.Interior.ColorIndex = -4142
End If
Next
End With
For Each ky In d.keys
If d1.exists(ky) = True Then
If d(ky) <> d1(ky) Then
ar = Split(d(ky), Chr(10))
ar1 = Split(d1(ky), Chr(10))
For i = 0 To 9
If ar(i) <> ar1(i) Then
Sheet1.Range(dd(ky)).Offset(, i).Interior.ColorIndex = 6
Sheet2.Range(dd(ky)).Offset(, i).Interior.ColorIndex = 6
End If
Next
End If
Else
Sheet1.Range(dd(ky)).EntireRow.Interior.ColorIndex = 35
End If
Next
For Each ky In d1.keys
If d.exists(ky) = False Then Sheet2.Range(dd1(ky)).EntireRow.Interior.ColorIndex = 35
Next
End Sub
複製代碼
作者:
b9208
時間:
2011-2-10 13:18
回復
2#
Hsieh
Dear Hsieh
測試後,針對增加或減少料號之整列填滿綠色ok(可以修訂只有資料區域,而不是整列),
但對於同料號其內容資料有異儲存格填滿黃色的部份,如同日內有增加或減少料號列數,則其黃色位置會跑掉。
請參考附檔
非常感謝指導
[attach]4691[/attach]
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)