我怎样才能比较不同的Excel文件中的2个列表,并突出显示更改?

让18jan.xlsx包含以下数据:

ABC 10 XYZ 20 PQR 30 STU 40 DEF 50 HIJ 60 KLM 70 

19jan.xlsx包含:

 XYZ 20 ABC 15 STU 40 DEF 50 HIJ 65 PQR 30 KLM 70 

我需要对它们进行比较,并突出显示这些变化,例如,这里应该突出显示在ABC前面的15个变化。 而且我还需要每天更换date。

假设你的数据放在列A:B第一行,下面的代码应该做这个工作:

 Sub DailyDataHighlight() Dim InputFolder As String Dim OldExcel As String Dim NewExcel As String Dim i As Long Dim OldString As String Dim OldValue As String Dim NewValue As String Dim SearchResult As Range InputFolder = "D:\DOCUMENTS\" OldExcel = "18jan.xlsx" NewExcel = "19jan.xlsx" Application.ScreenUpdating = False Application.Workbooks.Open (InputFolder & OldExcel) Application.Workbooks.Open (InputFolder & NewExcel) For i = 1 To Workbooks(OldExcel).ActiveSheet.Range("A1").CurrentRegion.Rows.Count OldString = Workbooks(OldExcel).ActiveSheet.Cells(i, 1).Text OldValue = Workbooks(OldExcel).ActiveSheet.Cells(i, 2).Text Set SearchResult = Workbooks(NewExcel).ActiveSheet.Range("A1").CurrentRegion Set SearchResult = SearchResult.Find(OldString, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True) If Not SearchResult Is Nothing Then NewValue = SearchResult.Offset(0, 1).Text If NewValue <> OldValue Then SearchResult.Offset(0, 1).Interior.Color = RGB(0, 255, 0) End If Next i Workbooks(NewExcel).Save Application.ScreenUpdating = True End Sub 

假设和细节:

  1. 数据范围实际上是无限的。
  2. 这两个文件都放在同一个文件夹中。 名称和path应在代码中定义。
  3. 使用单元格填充完成“高光” .Interior.Color = RGB(0, 255, 0)根据需要更改.Interior.Color = RGB(0, 255, 0)
  4. 只检查密钥string的第一个和唯一的出现(基于input)。

示例文件也是共享的: https : //www.dropbox.com/s/vqkulovmg98yaih/DailyDataHighlight.xlsm

希望对学习VBA有帮助)