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

Excel检测公式是否与表格中的计算列不一致,并显示一个绿色的三angular形(表示“该单元格与列公式不一致”)。 我怎样才能通过VBAfind他们。 我发现这个代码应该做的伎俩(从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只发送“False”,所以它不起作用。

这可以固定工作在一个表而不是一个正常的范围?

编辑:xlInconsistentFormula不会做任何事情,如果你在一个表中工作。

这工作:

 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正确指出的那样,将一列或一组列转换为表格可以抑制引发绿色标志的错误检查级别。 这段代码不会检测到以这种方式被抑制的错误。

如果你有一个不一致的公式,你应该看到这样的事情:

在这里输入图像说明

如果你没有这样的事情,你可能会closures通知(我认为这是可能的)。