我第一次使用VBA。直到现在,我成功地建立了一个模型。但是,我仍然想加快计算(我已经关闭了ScreenUpdating,EnableEvents,xlCalculationAutomatic,DisplayPageBreaks)。我已经在互联网上看到,for-loops非常耗时。不幸的是,我真的有很多。因此,我的问题:VBA Excel避免与可变列循环
假设我有这种类型的代码:
For p = 1 To Periods
Demand(p) = Worksheets("Sheet1").Cells(3, 1 + p)
Next p
我的第一个问题:这是否为环真正减慢运行时间?第二个问题:我如何重写它,从而加速计算?
我一直在尝试以下操作:
Demand = Worksheets("Sheet1").Range(Worksheets("Sheet1").Cells(3, 2), Worksheets("Sheet1").Cells(3, 1 + Periods))
但不幸的是,这似乎并没有工作。我已经Google了这个,但我似乎没有找到答案。
非常感谢您的帮助!
非常感谢您的帮助。快速变化已经是一个巨大的改进。但是,我尝试单一呼叫时遇到一些问题。我得到这个错误:“运行时错误'13':类型不匹配”。你有什么想法可能出错的地方? – Ann 2015-02-12 14:00:25
您需要发布更多的代码。 – 2015-02-12 14:21:21
你是在声明'Demand'吗?像'昏暗的需求(1到期)'?如果是这样,请尝试删除类型声明“Dim Demand”或明确将其变为“Variant”:Dim Demand As Variant。否则,正如已经指出的那样,我们需要看到更多的代码,特别是导致问题行发生的情况。 – 2015-02-12 14:42:44