我在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中的值被更改,它将重新计算该值。
希望这是有道理的
答案 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