大众计算机学习网

专门提供各种电脑教程

对比两表相同位置的单元格数据,如果不同就在表三自动提示

Admin | 2009-8-21 23:25:13 | 被阅次数 | 7225

  本例,我们来学习一下,如何使用VBA来完成这样的一个功能:

  对比表一和表二的相同位置的单元格数据,如果发现某处的单元格的值不相同,那么,就在三表给出提示,并标出行号、列号、表一内容、表二内容!

  举个例子,比如,表一的A2单元格内容为1,表二的A2单元格内容为1,那么,说明两表的同一个单元格的内容相同,则不在三表中进行任何提示;反过来,比如,表一的B8单元格内容为“大众计算机学习网”,而表二的B8单元格为空或为其它文字,说明两表的同一个单元格内容不相同,那么,则会在表三给出提示,不仅提示行列的编号,还给出两表各自的内容。

  下面我们先看实例的表一内容!

  下图为表二的内容!

  根据本文的意图,我们所要的结果就是图三的效果:注意,这是表三中自动出现的提示!

  如果要实现以上的效果,那么,必须使用VBA不可。

  以下代码就是功能代码:

 Private Sub Workbook_Open()
    MoveBoot = 1
    For RowBoot = 1 To 100
        For ColumnBoot = 1 To 100
            If (Trim(Worksheets(1).Cells(RowBoot, ColumnBoot).Value) <> Trim(Worksheets(2).Cells(RowBoot, ColumnBoot).Value)) Then
                Worksheets(3).Cells(MoveBoot, 1).Value = "行号:" & RowBoot & ";列号:" & ColumnBoot
                Worksheets(3).Cells(MoveBoot, 2).Value = "表一内容:" & Worksheets(1).Cells(RowBoot, ColumnBoot).Value
                Worksheets(3).Cells(MoveBoot, 3).Value = "表二内容:" & Worksheets(2).Cells(RowBoot, ColumnBoot).Value
                MoveBoot = MoveBoot + 1
            End If
        Next
    Next
 End Sub

  将以上代码放到您的Excel文件对应的VBA窗口并保存,即可实现!以上代码的触发触发事件是,当打开Excel文件的时候,会自动进行比较,并把结果显示在表三中。

  如果您还不知道如何使用以上的VBA代码,那么,请参阅本站的Excel教程的其它文章,俺已多次对此用法作过N次详细的介绍。