看板 Visual_Basic 關於我們 聯絡資訊
我要計算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
lion21:我沒細看 但是我覺得用函數配合可能會改善 04/26 12:04
bulldog:把工作表內容先抓到陣列去處理? 04/26 12:13
Marty:首先要把"自動計算"這個功能關掉 大概可以提升2~10倍速度 04/26 12:44
Marty:在開頭加入 Application.Calculation = xlCalculationManual 04/26 12:52
EdisonX:塞到array+1 04/27 01:46
ClubT:arr為陣列 arr=Sheets("sheet1").Range(要抓的範圍).Value 04/27 11:42
ClubT:可以這樣做啦,不過如果你只是要加總 用1F說的配合函數才對 04/27 11:43
g921:把4個sheet.cells讀到array 讀到array+1 04/30 21:59
g921:只是讀到array之後,就無需調整自動計算設定。 04/30 22:01