通过VBA在Excel中查找不一致的公式

时间:2014-07-01 13:31:28

标签: excel vba excel-vba

Excel检测公式是否与表中的计算列不一致,并显示一个小的绿色三角形(表示“此单元格与列公式不一致”)。如何通过VBA找到它们。我发现这个代码应该可以解决问题(来自http://www.ozgrid.com/forum/showthread.php?t=145306),但只有在使用的范围是正常范围而不是表格时才有效:

Dim oneCell As Range 

For Each oneCell In ActiveSheet.UsedRange 
    If oneCell.Errors(xlInconsistentFormula).Value Then 
        oneCell.Interior.ColorIndex = 6 
    Else 
        oneCell.Interior.ColorIndex = xlNone 
    End If 
Next oneCell 

oneCell.Errors(xlInconsistentFormula).Value只发送“假”,因此无效。

这可以修复为在表格而不是正常范围内工作吗?

编辑:如果您在表中工作,xlInconsistentFormula不会执行任何操作。

2 个答案:

答案 0 :(得分:2)

这有效:

Sub fhdjksjdfhs()
    Dim r As Range
    Dim rBig As Range
    Set rBig = ActiveSheet.UsedRange.Cells.SpecialCells(xlCellTypeFormulas)
    For Each r In rBig
        If r.Errors.Item(xlInconsistentFormula).Value = True Then
            r.Interior.ColorIndex = 6
        Else
            r.Interior.ColorIndex = xlNone
        End If
    Next r
End Sub

修改#1:

正如 Kersijus 正确指出的那样,将一列或一组列转换为会抑制引发绿色标记的错误检查级别。此代码不会检测以这种方式抑制的错误。

答案 1 :(得分:0)

如果您的公式不一致,您应该看到如下内容:

enter image description here

如果你没有这样的话,你可能会关闭通知(我认为这是可能的)。