我正在創建一個字符串,它是一個公式。也喜歡在這裏(這是一個簡單的例子)
如果:將公式粘貼文本
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