寻找单元格中的更改 - Excel文件

时间:2011-10-05 16:40:09

标签: excel vba

我有2个excel文件,每个文件都包含大量数据。两个文件中的数据结构完全相同,但由于数据来自两个不同的时间,因此值可能已更改。

基本上我想找到一些方法来自动比较两个文件的每个单元格中的值,并突出显示文件#2中已更改值的单元格。

请分享您的想法!

示例:

文件1:

a / 1/2

文件2:

a / 1/8

(/ - 表示新单元格)

3 个答案:

答案 0 :(得分:0)

您可以使用此online website - xlcomparator.net(点击右上角的英文版标记)。

或者试试这个软件:http://www.formulasoft.com/excel-compare.html

或尝试这种宏(检查第一列)并根据您的需要进行调整:

sub compare()
   Application.ScreenUpdating = False
   Dim coll1 As New Collection, coll2 As New Collection
   Dim cell1 As Range, cell2 As Range
   Dim Element1 As Object, Element2 As Object

 Workbooks("workbook1.xls").Activate
   For Each Cellule1 In Range("a:a")

  coll1.Add cell1
   Next Cellule1

 Workbooks("workbook2.xls").Activate
   For Each cell2 In Range("a:a")

  coll2.Add cell2
   Next cell2
   For Each Element1 In coll1
     For Each Element2 In coll2
      If Element1 <> Element2 Then
         Element1.Font.Color = vbRed
  Else
         Element1.Font.Color = vbBlack
         Exit For
      End If
     Next Element2
   Next Element1

 Application.ScreenUpdating = True
 end sub

Source - excelabo, a french website

答案 1 :(得分:0)

这可能不是的有效方法(虽然可以在几秒钟内处理25k个单元格),但它可以简单地弥补它。

这将查看Sheet2中的每个单元格,并将其与您指定的文件的Sheet1中相同地址的单元格中的值进行比较。如果不同,则Sheet2中的单元格将突出显示为黄色。

Sub FindDifferences()

Application.ScreenUpdating = False
Dim cell As Range
Dim wkb1 As Workbook
Dim wks1 As Worksheet

Set wkb1 = Workbooks.Open(Filename:="C:\MyBook.xls")
Set wks1 = wkb1.Worksheets("Sheet1")

For Each cell In ThisWorkbook.Sheets("Sheet2").UsedRange
    If cell.Value <> wks1.Cells(cell.Row, cell.Column).Value Then
        cell.Interior.Color = vbYellow
    End If
Next

wkb1.Close
Application.ScreenUpdating = True
End Sub

注意: 您可以通过简单地删除wkb1和wks1变量并将wks1.Cells...更改为Sheets("Sheet1").Cells来轻松定制此工具以比较同一文件中的2个工作表...

答案 2 :(得分:0)

另外两个选项:

  1. 电子表格优势http://www.spreadsheetadvantage.com/,您可以获得30天的免费试用
  2. 这是我最喜欢的工具,因为它还提供行和列对齐选项,以确保在运行比较输出代码以突出显示任何差异之前,按行和列对两个工作表进行缩进显示

    1. Myrna Lawson在Chip Pearson的网站http://www.cpearson.com/Zips/Compare.zip
    2. 上提供了compare.xla addin (免费)