我想问是否可以检查特定区域的不一致公式。
就我而言,col D 和 col E 包含不同的公式集。
我只是想确保 col E 中的所有公式都是一致的。
有可能这样做吗?
这是一种方法。
假设您的工作表如下所示
现在将此代码粘贴到模块中并运行它。它会告诉您哪些单元格的公式不一致。看下面的截图
我已经对代码进行了注释,以便您理解它不会有任何问题。如果你只是问:)
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
一种快速实用的方法是(暂时)使用另一列:假设您要检查列 E 中的每个单元格是否有公式=SUM(A1:D1)
,只需=(SUM(A1:D1)-E1
在另一列中输入公式。然后选择列并过滤FALSE
- 这将为您提供所有具有不同结果的公式!