0

Excel のデータ テーブルは、入力の 1 つが変化した場合に数値がどのように変化するかを確認するのに非常に便利です。でも:

  • 彼らは(とても)遅い
  • 編集する変数は動的ではありません。つまり、行または列の入力セルを変更しても=INDIRECT(<dynamic address>)機能しますが、動的アドレスが変更されても更新されません。
  • 彼らはあなたに迷惑な構造を使わせます
  • 変数はテーブルと同じシートにある必要があります

私はそれらの多くを実行したいので、ポイント 1 と 2 により、データ テーブルの操作が非常に非現実的になります。VBAでこれを行う関数を作成する方法はありますか? 変数の値を変更する UDF を試しました (たとえば=whatif(<hypothetical output>, <variable cell>, <variable hypothetical value>)、VBA では許可されていません (「コード内で VBA 関数が再実行されないようにする方法」を参照)。

4

1 に答える 1

1

I am quite sure you can achieve your goals using subs rather than UDFs. The concept is to, basically, treat the worksheet like one huge function:

  1. the sub sets up a group of input cells
  2. the sub allows the worksheet to calculate
  3. the sub monitors the output cell(s)

If the goal is some kind of non-linear analysis (like sensitivity analysis), the sub compares successive runs. If the goal is some kind of optimization, the sub drives the inputs to achieve a result. If the goal is some kind of statistical analysis or modelling, the sub can drive a Monti Carlo.

于 2013-11-07T00:22:23.353 に答える