1

「マスターシート」に数式を入力できるようにしたい。その数式は、呼び出されると、数式が呼び出されたシートで実行されます。

例:

Sheet 1 (master sheet)
Col A    Col B
ABC      A1 
DEF      A2xA2
GHI      A3-A1 * .05
JKL      A4+A1

Sheet 2
Col A    Col B     Col C
5        DEF       
10       ABC
15       GHI
20       JKL

したがって、シート 2 の列 B に入力して、シート 2 の対応する列に関連するシート 1 (マスター シート) の数式を実行することです。上の例では、列 C のシート 2 の行 1 は次のようになります。 be 25. と の混合物VLOOKUPを試していましたINDIRECT。Sheet1のABCなどのセル参照だけであれば問題なく動作します。他のいずれかに入ると、爆撃します。正常に動作するのでVLOOKUP、数式を「実行」または数式を評価できるものはありますか? または、単純なセル参照以上の場合に間接的に機能させる方法。

VBA ソリューションには興味がありません。Excel の関数を直接使用したいのです。

4

1 に答える 1

1

ワークシートからは利用できない Excel の Evaluate 関数を呼び出すモジュールで UDF を作成できるため、VBA を使用すると簡単です。

Function Eval(ByVal r As Range)
    Application.Volatile True
    Eval = Evaluate(r.Value)
End Function

次に、たとえば、セル C1 のテキストとして SUM($A$1:$A$10) がある場合、そのテキストを別のセルで数式として実行するには、次のように入力するだけです。

=Eval(C1)

本当に VBA を避ける必要がある場合は、名前を定義するときに Evaluate 関数を使用できます。したがって、C1 に SUM($A$1:$A$10) を持つ上記の例では、以下を参照する SumCol という新しい名前を定義できます。

=Evaluate($C$1)

そして、SumCol をセルに入れることができます。

=SumCol

しかし、このようにたくさんの名前を定義するのは面倒だと思います。

于 2012-11-12T18:06:17.080 に答える