通过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通知(我认为这是可能的)。