2012-08-10 113 views

回答

0

小除了现有的代码:

Sub Compare_Sheets() 

Dim v1,v2 
Dim diffRow as long 

Set From_WS = Workbooks("Book1").Worksheets("Sheet1") 
Set To_WS = Workbooks("Book2").Worksheets("Sheet2") 
Set diffWS = Thisworkbook.Sheets("Diff") 

diffRow = 1 

With From_WS.Cells(1, 1).CurrentRegion 
    Total_Rows = .Rows.Count 
    Total_Columns = .Columns.Count 
End With 

For Rows_Counter = 1 To Total_Rows 
For Column_Counter = 1 To Total_Columns 
v1 = Trim(LCase(From_WS.Cells(Rows_Counter, Column_Counter).Value)) 
v2 = Trim(LCase(To_WS.Cells(Rows_Counter, Column_Counter).Value)) 

If v1 <> v2 Then 
    From_WS.Cells(Rows_Counter, Column_Counter).Interior.ColorIndex = 4 
    To_WS.Cells(Rows_Counter, Column_Counter).Interior.ColorIndex = 5 

    With diffWS.Rows(diffRow) 
     .Cells(1).value=From_WS.Cells(Rows_Counter, Column_Counter).Address() 
     .Cells(2).value = v1 
     .Cells(3).value= v2 
     diffRow = diffRow + 1 
    End With 

End If 

Next Column_Counter 
Next Rows_Counter 

End Sub 
+0

蒂姆,我只是工作表Sheet1和当前工作簿Sheet2的测试,它似乎并没有工作。 Total_Rows和Total_Columns评估为1.也许我错过了什么? – 2012-08-11 04:07:16

+0

这很好,虽然... http://www.exceltip.com/st/Compare/two_worksheets_using_VBA_in_Microsoft_Excel/477.html – 2012-08-11 04:09:01

+0

嗯,我只重构了OP指向的帖子中的代码,所以我认为这是为他们工作。它确实取决于具有从A1开始布置的相同数据的两张... – 2012-08-11 07:14:02

相关问题