作者joewusuper (阿吉)
看板Visual_Basic
标题[VBA ] 如何调整可让执行速度变快
时间Thu Apr 26 11:56:54 2012
我要计算15年的数值~
每一年会再切成365期(以天计算)~
然後将数字(在不同sheet)相乘後相加~
可是跑一次要1小时以上~不知道有没有可以更快的方法
以下是我的程式码~
For i = 0 To (15 * h - 1) '保障15年
For j = 0 To (15 * h - 1 - i)
A = Int(i / h)
B = Int(j / h)
VM1 = VM1 + (1 + r) ^ (-(i + j + 1) / h)
* Sheets("result_1_M").Cells(2 + i, 2 + k)
* Sheets("健康体死力_M").Cells(3 + k + A, 5) / h
* Sheets("result_2_M").Cells(2 + j, 2 + k + A)
* Sheets("罹患癌症_脑中风_M").Cells(2 + B, 2 + A + k) / h
Next j
Next i
谢谢指教^^
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 163.14.83.23
1F:推 lion21:我没细看 但是我觉得用函数配合可能会改善 04/26 12:04
2F:推 bulldog:把工作表内容先抓到阵列去处理? 04/26 12:13
3F:推 Marty:首先要把"自动计算"这个功能关掉 大概可以提升2~10倍速度 04/26 12:44
4F:推 Marty:在开头加入 Application.Calculation = xlCalculationManual 04/26 12:52
5F:推 EdisonX:塞到array+1 04/27 01:46
6F:推 ClubT:arr为阵列 arr=Sheets("sheet1").Range(要抓的范围).Value 04/27 11:42
7F:→ ClubT:可以这样做啦,不过如果你只是要加总 用1F说的配合函数才对 04/27 11:43
8F:推 g921:把4个sheet.cells读到array 读到array+1 04/30 21:59
9F:→ g921:只是读到array之後,就无需调整自动计算设定。 04/30 22:01