0

Excel 中的数据表非常适合查看如果您的输入之一发生变化,数字将如何演变。然而:

  • 他们(非常)慢
  • 您编辑的变量不是动态的;即将行或列输入单元格更改为=INDIRECT(<dynamic address>)有效,但如果动态地址更改,则不会更新。
  • 他们强迫你使用令人讨厌的结构
  • 变量需要与表格在同一张表中

因为我想做很多,所以第 1 点和第 2 点使得使用数据表变得非常不切实际。有没有办法在 VBA 中创建一个函数?我尝试了一个更改变量值的 UDF(例如=whatif(<hypothetical output>, <variable cell>, <variable hypothetical value>),但这在 VBA 中是不允许的(请参阅如何防止 VBA 函数在代码中重新执行)。

4

1 回答 1

1

我很确定您可以使用 subs 而不是 UDF 来实现您的目标。这个概念基本上是将工作表视为一个巨大的功能:

  1. sub 设置一组输入单元格
  2. 子允许工作表计算
  3. 子监视输出单元

如果目标是某种非线性分析(如敏感性分析),则子会比较连续运行。如果目标是某种优化,则子驱动输入以实现结果。如果目标是某种统计分析或建模,则潜艇可以驱动蒙蒂卡罗。

于 2013-11-07T00:22:23.353 回答