使用 VBA 查找并更正所有不一致的列公式
Find and correct all inconsistent column formulas with VBA
我有一个包含 5 个工作表的 excel 工作簿,每个工作表中都有一个 table 带有值。
然后我根据用户选择(使用下拉列表)删除一些行(使用 VBA)。
在我的 VBA 代码删除所有不必要的行后 Excel 声明我有 "inconsistent column formulas" 我想在用户看到它之前用 VBA 解决它。
有什么方法可以用 VBA 做到这一点吗?
我已经搜索 Google 一整天了,但仍然没有找到任何有用的东西,我唯一想到的就是遍历所有包含公式的行和列,检查是否公式有错误,肯定会超级慢...
注意:如果这算作 Find inconsistent formulas in Excel through VBA 的重复项,我很抱歉,但唯一的答案不适用于 tables 作为数据范围
如果您尝试重置 Table
中的公式,您可以使用 DataBodyRange.Formula
属性 重置整个列的公式。这解决了获取 Inconsistent Calculated Column Formula
.
的一种方法
错误示例是通过为该列设置公式,更改一个单元格,然后告诉 Excel 在该编辑后不要更改公式列。
要将其恢复为列公式(并消除错误),您可以 运行 VBA 更改 DataBodyRange
.
的公式
改回代码
Sub ResetTableColumnFormula()
Dim listObj As ListObject
For Each listObj In ActiveSheet.ListObjects
listObj.ListColumns("b").DataBodyRange.Formula = "=[@a]"
Next
End Sub
请注意,我有点懒惰,遍历所有 ListObjects
而不是使用 table 的名称来获取引用。这是可行的,因为 Worksheet
.
上只有一个 Table
代码后的公式运行s:
请注意,此答案与 answer here.
非常相似
我有一个包含 5 个工作表的 excel 工作簿,每个工作表中都有一个 table 带有值。 然后我根据用户选择(使用下拉列表)删除一些行(使用 VBA)。 在我的 VBA 代码删除所有不必要的行后 Excel 声明我有 "inconsistent column formulas" 我想在用户看到它之前用 VBA 解决它。
有什么方法可以用 VBA 做到这一点吗?
我已经搜索 Google 一整天了,但仍然没有找到任何有用的东西,我唯一想到的就是遍历所有包含公式的行和列,检查是否公式有错误,肯定会超级慢...
注意:如果这算作 Find inconsistent formulas in Excel through VBA 的重复项,我很抱歉,但唯一的答案不适用于 tables 作为数据范围
如果您尝试重置 Table
中的公式,您可以使用 DataBodyRange.Formula
属性 重置整个列的公式。这解决了获取 Inconsistent Calculated Column Formula
.
错误示例是通过为该列设置公式,更改一个单元格,然后告诉 Excel 在该编辑后不要更改公式列。
要将其恢复为列公式(并消除错误),您可以 运行 VBA 更改 DataBodyRange
.
改回代码
Sub ResetTableColumnFormula()
Dim listObj As ListObject
For Each listObj In ActiveSheet.ListObjects
listObj.ListColumns("b").DataBodyRange.Formula = "=[@a]"
Next
End Sub
请注意,我有点懒惰,遍历所有 ListObjects
而不是使用 table 的名称来获取引用。这是可行的,因为 Worksheet
.
Table
代码后的公式运行s:
请注意,此答案与 answer here.
非常相似