1
我正在使用這裏的宏:http://answers.yahoo.com/question/index?qid=20060906110734AA9t2l9來突出顯示差異。但是,當有50000行時,只有2行不同,這是一個大海撈針的問題。Excel VB宏比較工作表和輸出結果到另一個工作表
我希望能夠做的是在單獨的工作表中查看差異,並排前後進行更改。任何幫助,這將不勝感激。
我正在使用這裏的宏:http://answers.yahoo.com/question/index?qid=20060906110734AA9t2l9來突出顯示差異。但是,當有50000行時,只有2行不同,這是一個大海撈針的問題。Excel VB宏比較工作表和輸出結果到另一個工作表
我希望能夠做的是在單獨的工作表中查看差異,並排前後進行更改。任何幫助,這將不勝感激。
小除了現有的代碼:
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
蒂姆,我只是工作表Sheet1和當前工作簿Sheet2的測試,它似乎並沒有工作。 Total_Rows和Total_Columns評估爲1.也許我錯過了什麼? – 2012-08-11 04:07:16
這很好,雖然... http://www.exceltip.com/st/Compare/two_worksheets_using_VBA_in_Microsoft_Excel/477.html – 2012-08-11 04:09:01
嗯,我只重構了OP指向的帖子中的代碼,所以我認爲這是爲他們工作。它確實取決於具有從A1開始佈置的相同數據的兩張... – 2012-08-11 07:14:02