我们在使用Excel处理数据的时候,经常需要对比两行或者两列数据之间的异同。虽然有EXACT之类的函数非常方便的提供了对比功能,但难免还是不够用,特别是需要实现一些个性化的比对的时候。
这时VBA就派上了用场,使用VBA代码也能很方便的实现单元格的文本比对着色。只需要在vba代码编辑器里添加如下一段代码即可:
Sub diff()
Dim wbook As Workbook
ChDir "D:\"
Set wbook = Workbooks.Open(Filename:="D:\1.xlsx") '要比对的Excel文本
wbook.Activate
Dim col, row As Integer
For row = 1 To ActiveSheet.UsedRange.Rows.Count Step 1 '所有有效的行
For col = 1 To ActiveSheet.UsedRange.Columns.Count Step 2 '所有有效的列,step 2 表示每隔一行都执行一次比对,这样可以实现多组比对
If Cells(row, col) <> Cells(row, col + 1) Then
Cells(row, col).Interior.Color = 5296274 '着绿色
Cells(row, col + 1).Interior.Color = 5296274
End If
Next
Next
wbook.Save
End Sub
为了验证上述代码有效,我们在D盘根目录下建立一个1.xslx文件,在里面准备以下内容:
执行上述代码,效果如图所示: