【发布时间】:2015-12-03 00:03:19
【问题描述】:
是否可以在 VBA 中为 excel 编写一个公式,使得公式中有“n”个术语,术语的数量随着“n”的值而变化?
例如,假设您想将单元格 a1 编码为 a2 和 a3 的总和。然后,您希望 b1 是 b2、b3、b4、b5 等的总和,这样一列单元格的每列 1 行 1 单元格是其下方“n”单元格的总和,其中“n”从列到柱子。假设您要使用的所有单元格地址都是已知的并存储在一个数组中。
这里有一些代码可以更好地解释我的要求:
For i = 0 to n
Range(arr1(i)).formula = "=" & range(arr2(i)).value & "-(" _
& Range(arrk(i)).value & "+" & Range(arrk+1(i)).value & "+" _
& Range(arrk+2(i)).value & "+" & ... & ")"
Next i
所以我正在寻找的是一段 VBA 代码,它可以使单元格公式包含动态数量的术语。上面的代码将使单元格 a1 的值 = a-(b+c+d+...),其中括号中的项数是可变的,具体取决于公式应用于哪个单元格。
这里的图片显示了我想要做的一个例子。我想要一些代码,它可能需要“年收入”并从中减去可变数量的“费用”,其中费用的数量每年都在变化(但该数字在当年保持不变)。代码需要使用公式,以便用户可以修改费用条目。
【问题讨论】:
-
对。我想我应该让这个例子更棘手!如果中间有我想忽略的非空白单元格怎么办?我将更改图像以显示我的意思
-
每一列的“垃圾”是否总是在同一行中?
-
在 B12 中仍然是
=B2-SUM(B3:B4,B6,B8:B9,B11)并复制到右侧...根本不需要 vba... -
SUMIFS可能也是一种可行的方法......=SUMIFS(B3:B11,B3:B11,"<>JUNK") ... add more conditions if there are different types of "JUNK"