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