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