使用VBA查找并更正所有不一致的列公式

我有一个Excel工作簿,每个工作表有5个工作表,有一个表值。 然后删除一些行(使用VBA)取决于用户select(使用下拉列表)。 我的VBA代码删除后,所有不必要的行Excel指出,我有“不一致的列公式”,我想用VBA解决之前,用户看到它。

有没有办法用VBA做到这一点?

我search了整整一天的Google,但仍然没有发现任何有用的东西,我脑海中唯一想要的就是遍历所有具有公式的行和列,检查公式是否包含错误,这肯定会超级慢…

注意:如果这是通过VBA在Excel中查找不一致公式的重复,那么对不起,但是唯一的答案是不能用作数据范围的表

如果试图重置Table的公式,则可以使用DataBodyRange.Formula属性重置整个列的公式。 这解决了获取Inconsistent Calculated Column Formula一种方法。

通过设置列的公式,更改一个单元格,然后告诉Excel在编辑之后不更改公式列来获取错误的示例。

在这里输入图像说明

要将其恢复为列公式(并删除错误),可以运行更改DataBodyRange公式的DataBodyRange

代码改回来

 Sub ResetTableColumnFormula() Dim listObj As ListObject For Each listObj In ActiveSheet.ListObjects listObj.ListColumns("b").DataBodyRange.Formula = "=[@a]" Next End Sub 

请注意,通过迭代所有ListObjects而不是使用表名来获取引用,我有点懒惰。 这是可行的,因为Worksheet Table上只有一个Table

该代码运行后的公式:

在这里输入图像说明

请注意,这个答案和这里的答案非常相似。