我有一个使用几乎所有 UDF 的 Excel 模型。比如说,120 列和 400 多行。计算是先垂直然后水平完成的——首先完成第 1 列的所有计算,然后第 1 列的最终输出是第 2 列的输入,依此类推。在每一列中,我调用大约六个或七个 UDF调用其他 UDF。UDF 通常输出一个数组。
每个 UDF 的输入是一些变量,一些范围变量,一些双精度数。范围变量在访问其内容之前在内部转换为数组。
我的问题如下,我可以在没有 UDF 的情况下构建 Excel 模型,并且当我运行模拟时,我可以在 X 小时内完成所有计算。当我使用 UDF 时,模拟时间是 3X 小时或更长。(要回答这个显而易见的问题,是的,我需要使用 UDF,因为如果我想对模型进行一些小的更改(比如添加另一种资产类型(它是一个财务模型)),则需要将近一天的时间来重新制作模型如果没有 UDF 来适应新的法律/财务结构,使用 UDF 大约需要 20 分钟来适应不同的财务结构。)
无论如何,我已经关闭了屏幕更新,函数中没有复制和粘贴,Variant 类型的使用最少,所有数据都包含在一张表中,我在获取内容之前将所有范围类型变量转换为数组.
除了获得更快的计算机或同等设备以使 VBA 代码/Excel 文件运行得更快之外,我还能做什么?请让我知道这是否需要更多说明。
谢谢!