3

名前付き範囲を含むテキスト文字列を評価するにはどうすればよいですか? EVAL、EVALUATE、および INDIRECT を試してみましたが、成功しませんでした。

もうちょっと..

別のシステムでは、200 以上の変数を持つ 50 以上の数式があります。例を次に示します。

<ABC>+<DEF>/<TRE-1>

すべての数式、変数、演算子を手動で変更せずに Excel でそれらを一度に使用できるようにするために、2 つ (またはそれ以上) の SUBSTITUTE 数式を使用して、Excel が消化できる可能性のある文字列をレンダリングします。

=ABC+DEF/TRE_1

すべての変数を名前付き範囲に参照しました。例:

ABC はセル B2、値 5.4

DEF はセル B3、値 3.2

TRE_1 はセル B4、値 1

しかし、結果の文字列を INDIRECT または EVALUATE で評価できません。変数を名前付き範囲 (したがって値) として認識していないように見えるため、#NAME または #REF エラーが発生するだけです。

何か案は?

これをVBAに実装したくありません。.RefersTo メソッドを使用して可能であることはわかっています。

4

3 に答える 3

4

次の構文を使用してみてください。

=INDIRECT("ABC")+INDIRECT("DEF")/INDIRECT("TRE_1")

引用符に注意してください。それがどのように機能するかのようINDIRECTです:=INDIRECT("ABC+DEF")戻ります#REF!

このサンプルも参照してください: https://www.dropbox.com/s/jxj7cgjmnx8iv0t/INDIRECTwithNamedRegions.xlsx

于 2013-02-11T15:30:16.260 に答える
0

VBAソリューション(ここまたはここに表示)は、現在のワークブックのモジュール内にUDF(ユーザー定義関数)を設定することです。例:

Function Eval(ByVal S As String) As String

Eval = Evaluate(S)

End Function

変数を名前付き範囲として設定し、セルに次のように入力します。

 =Eval("ABC+DEF/TRE_1")

そして、それは結果を正しくポップアウトします。

今..VBAを使いたくない...

于 2013-02-11T18:00:58.473 に答える
0

間接的なダウは式を評価せず、参照のみを評価します。評価を使用する必要がありますが、それは XLM または COM インターフェイスを介してのみ利用できます。
定義された名前の式の中に Evaluate を埋め込むことができますが、多くの場合、この方法は実用的ではありません。

于 2013-02-11T15:12:56.863 に答える