3

私の意見では、かなり異なる状況があります。定期的に使用する Excel ベースのプログラムのカスタム関数を作成しようとしています。主な問題は、関数を持ち、評価された数式を返すという点で、コードを再利用できないことです。そこで、次の案を思いつきました。引数を使用して Excel からデータを取得し、vb.net でそれらの引数をコード内に配置してから、Excel で評価し直すことができます。では、例を挙げましょう。

このコードは、Excel では「ソース コード」という名前で定義されています。 ="Width+{0}+Height+{1}" ご覧のとおり、2 つのことが起こっています。
#1。数式全体を文字列 #2 にしています。渡される 2 つの引数にいくつかの「プレースホルダー」を挿入しています。

これで、2 つの引数も定義済みの名前で配置されます。セル B1 (引数 1)=1+1=2 (Cell can be evaluated in excel) セル C1 (引数 2)=10+10=20 (Cell can be evaluated in excel)

ここで関数が発生します。セル D1=myformulaparsingfunction(Source_Code, Argument_1, Argument_2)

vb.net バックエンドでは、source_code 文字列を取り込み、引数を使用してプレースホルダーを解析します。だから私はこのようなものを手に入れます... ="Width+2+Height+20"

これが私の問題に到達する場所です。数式を解析すると、まだ文字列のままです。この文字列を数式として評価するように Excel に指示する方法が必要です。これを行う方法、または私がやろうとしていることを達成するための別の方法を知っている人がいる場合は、あなたのアイデアを聞いてください. うまくいけば、上記は、このコードでどこに行こうとしているのかを理解するのに十分明確に書かれています. 前もって感謝します。

ジョー

4

1 に答える 1

4

あなたが望むもののための方法を使うべきEvaluateです。短いサンプル:

Dim xlApp As Excel.Application
Set xlApp = New Excel.Application
xlApp.Visible = False
MsgBox xlApp.Evaluate("=5+(10+6)*100")
xlApp.Quit
Set xlApp = Nothing

続きを読む:http ://www.xtremevbtalk.com/archive/index.php/t-177848.html

于 2013-02-17T17:10:10.413 に答える