我有一些运行多次迭代的 Excel VBA 代码。每次迭代基本上都是计算一个数组,直到达到一个目标,通常大约 8 或 6 次尝试。问题是我需要运行这个数百次,系统太慢。
首先我计算了达到目标所需的时间:通常在 16 毫秒左右。然后我为每个循环计时,我知道它们的时间通常为 0 毫秒(非常快),除了一个时间为 16 毫秒的循环。然后我重复了几次(CTRL+ALT+F9),没有任何变化,需要 16 毫秒的循环会有所不同(有时是第 2 次,有时是第 5 次,等等......)
顺便说一句,有时是 15 毫秒...
所以我知道这是一个多任务系统,但是有什么方法可以让这个系统运行得更加一致吗?
作为参考,这是执行计时的代码:
While (Abs(Y - Me.Model.Tjref) > 0.5) And (Count < 100)
Count = Count + 1
t(Count) = GetTickCount
If Y > x Then ' left condition
X1 = x
Y1 = Y
Else ' right condition
X2 = x
Y2 = Y
End If
x = (X1 + X2) / 2
Me.Model.Tjref = x
Y = Me.Model.Tjmax
t(Count) = GetTickCount - t(Count)
t1 = t1 + t(Count)
Wend
MsgBox t(1) & " " & t(2) & " " & t(3) & " " & t(4) & " " & t(5) & " " & t(6) & " " & t(7) & " " & t(8) & " " & t(9) & " " & t(10) & " tot: " & t1
但是实际计算很长,分为几类......
我不关心 16 毫秒,但是当我在这 16 毫秒内运行多次时,重新计算一张表需要 10 秒...谢谢您的帮助!!!!!!