0

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

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

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

有可能这样做吗?

4

2 回答 2

2

这是一种方法。

假设您的工作表如下所示

在此处输入图像描述

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

我已经对代码进行了注释,以便您理解它不会有任何问题。如果你只是问:)

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

在此处输入图像描述

于 2013-01-24T15:07:09.660 回答
0

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

于 2013-01-24T20:17:04.460 回答