公式审计 - 特定区域的错误检查

时间:2013-01-24 13:54:23

标签: excel formula

我想问一下是否可以检查特定区域的不一致公式。

就我而言,col D和col E包含不同的公式集。

我只想确保col E中的所有公式都是一致的。

是否可以这样做?

2 个答案:

答案 0 :(得分:2)

这是一种方式。

假设您的工作表看起来像这样

enter image description here

现在将此代码粘贴到模块中并运行它。它将告诉您哪些单元格具有不一致的公式。见下面的截图

我已对代码进行了评论,以便您在理解代码时不会遇到任何问题。如果您只是问:)

Option Explicit

Sub GetInConsCells()
    Dim ws As Worksheet
    Dim rng As Range, cl As Range, errCells As Range
    Dim ErrorCells As String
    Dim lRow As Long

    '~~> Create a temp copy of the sheet
    ThisWorkbook.Sheets("Sheet1").Copy After:=Sheets(ThisWorkbook.Sheets.Count)

    Set ws = ActiveSheet
    With ws
        '~~> Clear Col D and Col F Contents
        .Range("D:D,F:F").ClearContents

        '~~> Find the last row of col E
        lRow = .Range("E" & .Rows.Count).End(xlUp).Row

        '~~> Set your range
        Set rng = Range("E1:E" & lRow)

        '~~> Check if the cells have inconsistent formulas
        For Each cl In rng
            If cl.Errors(xlInconsistentFormula).Value Then
                If errCells Is Nothing Then
                    Set errCells = cl
                Else
                    Set errCells = Union(cl, errCells)
                End If
            End If
        Next cl

        '~~> Display relevant message
        If Not errCells Is Nothing Then
            ErrorCells = errCells.Address
            MsgBox "Formulas in cells " & ErrorCells & " are inconsitent"
        Else
            MsgBox "All Formulas are consistent"
        End If
    End With

    '~~> Delete temp sheet
    Application.DisplayAlerts = False
    ws.Delete
    Application.DisplayAlerts = True
End Sub

enter image description here

答案 1 :(得分:0)

快速而实用的方法是使用另一列(暂时): 假设您要检查E列中的每个单元格是否具有公式=SUM(A1:D1),只需在另一列中输入公式=(SUM(A1:D1)-E1即可。然后选择FALSE的列和过滤器 - 这将为您提供具有不同结果的所有公式!