我正在创建一个字符串,它是一个公式。也喜欢在这里(这是一个简单的例子)
如果:将公式粘贴文本
A1 is "Sum"
A2 is "D3"
然后B1是=Concatenate("=",A1,"(",A2,")")
我想VBA宏取式的结果在B1和粘贴为C1中的公式为。
我需要C1为公式=SUM(D3)
我认为这涉及到PasteSpecial的和评估,但我无法弄清楚如何。
我不想使用INDIRECT函数,因为我希望能够使用公式和里面的相对引用来填充更多的单元格。
我正在创建一个字符串,它是一个公式。也喜欢在这里(这是一个简单的例子)
如果:将公式粘贴文本
A1 is "Sum"
A2 is "D3"
然后B1是=Concatenate("=",A1,"(",A2,")")
我想VBA宏取式的结果在B1和粘贴为C1中的公式为。
我需要C1为公式=SUM(D3)
我认为这涉及到PasteSpecial的和评估,但我无法弄清楚如何。
我不想使用INDIRECT函数,因为我希望能够使用公式和里面的相对引用来填充更多的单元格。
with Activesheet
.Range("C1").Formula = .Range("B1").Value
End With
ActiveSheet.Cells(2, 2).Value = ActiveSheet.Cells(1, 2).Value
可以工作,其余由我会承担:-)
这设置值,而不是公式。 –
你试过了吗?在说它不起作用之前,做你的家庭作业。 – Tipx
我不知道,如果要明确一个宏命令,但是这件事情看起来像一个巨大的应用一个VBA UDF。如果您创建的UDF:
Function EvalFormula(f As String) As Variant
EvalFormula = Application.Evaluate(f)
End Function
然后在C1您可以拨打:
=EvalFormula(B1)
写这是一个UDF是要消除这些不愉快的情况下,您忘了运行宏,现在你的表全部出了问题。
'与'是一条危险的道路imho。 (但它不会改变你的答案的价值,当然) – Tipx
@Tipx - 谨慎详细说明? –
只是一个侧面说明你们。如果你有一个插件,并尝试在插件上创建公式,它只能在一些时间内运行。不要问我为什么,我不知道。最终,我不得不直接将它写入我正在使用的工作表中。此外,另一个奇怪的是,你必须将每个公式分别写入每个单元格,你不能有一个二维数组并且一次写入多个单元格,不知道为什么,但至少烦人。 – Jon49