Excel VBA - 合并2个单元格公式

时间:2017-09-15 09:04:43

标签: excel vba excel-vba formula

我在2个不同的单元格中有2个公式,我想合并为1.它们看起来像:

ActiveCell.Formula = "=(" & Range(Cells(k1, 2), Cells(k1, 2)).Address(False, False) & "+" & Range(Cells(k1, 6), Cells(k1, 6)).Address(False, False) & ")"

ActiveCell.Formula = "=(" & Range(Cells(k4, 2), Cells(k4, 2)).Address(False, False) & "+" & Range(Cells(k4, 6), Cells(k4, 6)).Address(False, False) & ")"

其中k4 / k1是For循环的值。我有什么方法可以添加这两个细胞,但保留公式吗?

因此,如果第一个单元格中的值为= A1 + A2(5),则第二个单元格为= B1 + B2(15)。那么我想要最终值的单元格将是= A1 + A2 + B1 + B2而不是20.这样,如果A1 / A2 / B1 / B2中的值被更改,它将重新计算该值。

希望这是有道理的

1 个答案:

答案 0 :(得分:1)

下面的东西?它的作用是:

1)创建一个容器变量来收集所有公式(result

2)在范围内循环

3)收集单元格公式(等号除外)(func

4)连接单元格公式

5)将结果返回到单元格

请注意,对于许多(或长)公式,一旦它们对Excel变得过多,这可能会中断。

Sub merge()

result = ""

For Each cell In ActiveSheet.Range("C1:C2")

func = Right(cell.Formula, Len(cell.Formula) - 1)

result = result & "+" & func

Next cell

ActiveSheet.Range("C3").Formula = result

End Sub