2011-07-15 10 views
1

私は数式である文字列を作成しています。
(これは単純な例である)、ここでのような場合:次にテキストを式として貼り付けます。

A1 is "Sum" 
A2 is "D3" 

B1は

=Concatenate("=",A1,"(",A2,")")私はB1に式の結果を受け取り、ペーストがなどでVBAマクロをしたいれますC1の式

私はそれがPasteSpecialを伴うと思うし、評価が、私はどのように把握することはできませんC1は、式=SUM(D3)

する必要があります。

私は数式と内部の相対参照よりも多くのセルを埋めることができるので、私はINDIRECT関数を使いたくありません。

答えて

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

「with」は危険な道路です。 (ただし、あなたの答えの価値は変わりません) – Tipx

+0

@Tipx - 手入れを凝らしますか? –

+0

あなたのためのちょっとしたメモ。あなたがアドインを持っていて、アドインで数式を作成しようとすると、時間の一部しか動作しません。なぜ、私には分かりません。最終的には、私が作業していたシートに直接書き込む必要がありました。また、別の奇妙なことに、各式を各セルに個別に書き込む必要があります.2次元配列を持つことができず、一度に複数のセルに書き込むことはできません。なぜか分かりません。 – Jon49

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

あなたは私はあなたが明示的にコマンドマクロをしたい場合、私は知らないが、このことはの偉大な使用のように思える

+0

これは、数式ではなく値を設定します。 –

+0

試しましたか?それがうまくいかないと言う前に、あなたの宿題をしてください。 – Tipx

0

:-)想定したいということから、残りの部分を作業することができますVBA UDFあなたはUDFを作成する場合:

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

を次にC1にあなたが呼び出すことができます。

=EvalFormula(B1) 

をUDFは、あなたのマクロを実行し、今あなたのシートを忘れてしまったものを不愉快な状況を解消するために起こっているとして、これを書きますすべてが駄目です。

関連する問題