【发布时间】:2015-07-29 01:37:11
【问题描述】:
我正在寻找一种方法将 excel 公式解压缩为仅依赖于不引用其他单元格的单元格的公式。
示例:在下面的电子表格中,单元格 A1 包含公式“B1 + B2”。同时,单元格 B1 包含公式“C1 + D1”,而 B2 包含公式“C2 + D2”。单元格 C1、C2、D1 和 D2 都是常数(在本例中为值 1、2、3 和 4)。
我想要什么:我正在寻找一种方法(已经内置到 excel 中,或者 VBA 中的用户定义函数),它的功能如下:
调用: =ExplodeFormula(A1)
返回:“C1 + D1 + C2 + D2”
有人可以在这里帮助我吗?谢谢!
(编辑)我认为需要做一些事情:
- 某种方法可以将公式中的单元格引用与该公式中使用的函数区分开来。
- 以某种方式将范围引用与单个单元格引用区分开来(如果一个单元格引用一个范围,就像在 vlookup 的情况下一样,我会在那个级别停下来。
- 一种迭代第 1 部分和第 2 部分中确定的公式部分并将它们分解为更简单的块的方法,这些块在同一过程中递归运行。
【问题讨论】:
-
您打算如何处理
=SUM(A:A)之类的问题? -
它是否需要能够跨越工作表?引用其他工作簿的公式怎么样?
-
在您发布的简单案例中,您可能会使用 Range 对象的
DirectPrecedents属性实现您想要的。
标签: excel vba user-defined-functions