繁体   English   中英

比较两个Excel工作表的内容

[英]compare contents of two excel worksheets

我在同一工作簿中有两个工作表。 第一个工作表包含最后一个期间分数矩阵,第二个工作表包含这个期间分数矩阵。

我正在努力寻找一个可以突出显示此期间工作表中与上一个期间工作表不同的单元格的地方。

我已经能够找出已更改的单元格。 我知道这可以通过使用“ MsgBoxes”来实现,但是我找不到突出显示已识别单元格的方法。 这可能是因为我完全选择了错误的方法。 有人可以给我指导我应该怎么做吗?

下面是我拥有的代码(无论如何,根据MsgBox的代码)。 我将非常感谢任何指导。 谢谢,

    Option Explicit
Sub B_HighlightDifferences()
'Workbooks("Scoring Matrix NEW").Activate
    Dim varScoring As Variant
    Dim varScoring_OLD As Variant
    Dim strRangeToCheck As String
    Dim irow As Long
    Dim icol As Long
    Dim color As CellFormat
    strRangeToCheck = "bl9:bo15"  'smallrange for testing purposes only
    varScoring = Worksheets("Scoring").Range(strRangeToCheck)
    varScoring_OLD = Worksheets("Scoring_OLD").Range(strRangeToCheck)
    For irow = LBound(varScoring, 1) To UBound(varScoring, 1)
        For icol = LBound(varScoring, 2) To UBound(varScoring, 2)
            If varScoring(irow, icol) = varScoring_OLD(irow, icol) Then
                ' Cells are identical. ' Do nothing.
                MsgBox "This has not changed"
            Else
                ' Cells are different. 
        ' Need code here to highlight each cell that is different
                 MsgBox "This has changed"
End If
            End If
        Next icol
    Next irow
End Sub

您完成了大部分艰苦的工作。 我将更改以下内容。 加:

dim newCell as Range
Application.ScreenUpdating = False

...然后在您的for循环中:

Set newCell = varScoring.Cells(irow, icol)

然后,当发现不同的格式时,应该可以将所需的任何格式应用于newCell (这是一个Range对象)。

newCell.Select
With Selection.Interior
    .Color = 49407
    ' any formatting you want.
End With

在例程结束时,再次打开屏幕更新:

Application.ScreenUpdating = True

让我知道这是否有意义。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM