【发布时间】:2012-11-25 01:39:39
【问题描述】:
如果我在 Excel 表(即 ListObject)的列中手动输入公式,自动更正会将此公式应用于整个列。
有没有办法通过 VBA 控制这种行为,即我可以以某种方式修改/删除/添加这个公式吗?
我知道我可以简单地更改 ListObject.ListColumns(1).DataBodyRange 对象的公式 - 但这会覆盖之前输入的任何手动值 - 而在 UI 中更改公式将保持不变...
【问题讨论】:
-
我不清楚你想要什么行为。关于“更改 UI 中的公式将保持不变”,这不是我的经验。如果我有一个表格列,除了一个硬编码的单元格之外,整个表格的列都具有相同的公式,然后我更改了公式,我会收到“用这个公式覆盖所有单元格”的小提示。如果我选择是,硬编码的单元格将被覆盖,如果否,则公式仅适用于我已更改的单元格。这是 Excel 2010。
-
@Doug - 感谢您澄清这一点。我错误地认为更新公式时会保留偏离计算列公式的单元格!我现在看到情况并非如此,这几乎使问题无效!修改计算列公式所需要做的就是修改
listObject.ListColumns("Column name").DatabodyRange.FormulaR1C1...
标签: excel listobject excel-tables vba