Excel 中的数据表非常适合查看如果您的输入之一发生变化,数字将如何演变。然而:
- 他们(非常)慢
- 您编辑的变量不是动态的;即将行或列输入单元格更改为
=INDIRECT(<dynamic address>)
有效,但如果动态地址更改,则不会更新。 - 他们强迫你使用令人讨厌的结构
- 变量需要与表格在同一张表中
因为我想做很多,所以第 1 点和第 2 点使得使用数据表变得非常不切实际。有没有办法在 VBA 中创建一个函数?我尝试了一个更改变量值的 UDF(例如=whatif(<hypothetical output>, <variable cell>, <variable hypothetical value>)
,但这在 VBA 中是不允许的(请参阅如何防止 VBA 函数在代码中重新执行)。