将文本粘贴为公式

时间:2011-07-15 17:43:41

标签: excel vba excel-vba

我正在创建一个公式字符串。就像在这里(这是一个更简单的例子)
如果:

A1 is "Sum"
A2 is "D3"

然后B1是=Concatenate("=",A1,"(",A2,")")

我想要一个VBA宏,它接受B1中公式的结果,并在C1中粘贴作为公式

我需要C1为公式=SUM(D3)

我认为它涉及PasteSpecial并进行评估,但我无法弄清楚如何。

我不想使用INDIRECT函数,因为我希望能够使用公式和内部的相对引用来填充更多单元格。

3 个答案:

答案 0 :(得分:4)

with Activesheet
  .Range("C1").Formula = .Range("B1").Value
End With

答案 1 :(得分:0)

我不知道你是否明确想要一个命令宏,但这似乎是一个很好用的VBA UDF。如果您创建UDF:

Function EvalFormula(f As String) As Variant
    EvalFormula = Application.Evaluate(f)
End Function

然后在C1中你可以打电话:

=EvalFormula(B1)

将此作为UDF编写将消除那些您忘记运行宏的令人不快的情况,现在您的表单完全没有了。

答案 2 :(得分:-1)

ActiveSheet.Cells(2, 2).Value = ActiveSheet.Cells(1, 2).Value

你可以从我假设的其余部分开始工作: - )