我正在创建一个字符串,它是一个公式。就像在这里(这是一个更简单的例子)如果:
A1 is "Sum" A2 is "D3"
那么B1就是=Concatenate("=",A1,"(",A2,")")我想要一个VBA宏,它接受B1中公式的结果,并将作为公式粘贴到C1中。我需要C1等于公式=SUM(D3)我认为这涉及到特殊锡膏和评估,但我不知道如何。我不想使用INDIRECT函数,因为我希望能够填充更多的单元格使用比公式和内部的相对引用。
=Concatenate("=",A1,"(",A2,")")
=SUM(D3)
0yg35tkg1#
with Activesheet .Range("C1").Formula = .Range("B1").Value End With
vwkv1x7d2#
我不知道你是否明确地想要一个命令宏,但是这个东西看起来是VBA UDF的一个很好的用途。
Function EvalFormula(f As String) As Variant EvalFormula = Application.Evaluate(f) End Function
然后在C1中,您可以调用:
=EvalFormula(B1)
将其编写为UDF将消除那些令人不快的情况,即您忘记运行宏,现在您的工作表完全不正常。
voj3qocg3#
我使用ActiveSheet.Cells(5, 3).Formula = ActiveSheet.Cells(5, 3).Value将文本值用作公式
ActiveSheet.Cells(5, 3).Formula = ActiveSheet.Cells(5, 3).Value
ifmq2ha24#
ActiveSheet.Cells(2, 2).Value = ActiveSheet.Cells(1, 2).Value
我想你可以从这里开始工作:-)
4条答案
按热度按时间0yg35tkg1#
vwkv1x7d2#
我不知道你是否明确地想要一个命令宏,但是这个东西看起来是VBA UDF的一个很好的用途。
然后在C1中,您可以调用:
将其编写为UDF将消除那些令人不快的情况,即您忘记运行宏,现在您的工作表完全不正常。
voj3qocg3#
我使用
ActiveSheet.Cells(5, 3).Formula = ActiveSheet.Cells(5, 3).Value
将文本值用作公式ifmq2ha24#
我想你可以从这里开始工作:-)