我们在使用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文件,在里面准备以下内容:
执行上述代码,效果如图所示: