Board logo

標題: [發問] 執行速度差異 [打印本頁]

作者: li_hsien    時間: 2014-2-14 07:56     標題: 執行速度差異

請問各位大大

我最近常把函數加入VBA語法中

目前我做法有兩種寫法

1.  Range("B2").FormulaR1C1 =...... 這種做法(主要是用錄製巨集學來的 哈哈)

2.  Application.VLookup(.....)     

第1種好像就跟直接在工作表操作函數一樣,會有公式存在
第2種結果是一樣,但直接是值吧?
(我用方法1碰上大筆資料,會只做第一個儲存格,再用filldown的方式下拉。方法2我是會用FOR迴圈由上往下跑)
不知以上這兩種方式哪個比較快速,適合大筆資料使用
EX:
Formula的做法(先用第一欄,再FillDown)
Range("I2").FormulaR1C1 = "=VLOOKUP(LEFT(RC[-5],2),other!C[1]:C[2],2,0)"
Range("I2:I" & material_rows).FillDown

Application的做法(用For迴圈一個個跑)
Application.VLookup(.Range("E" & i), Workbooks(fs).Worksheets(1).Range("E:AE"), 27, 0)


還是另有其他方式可以操作


謝謝   :   )
作者: GBKEE    時間: 2014-2-14 08:56

回復 1# li_hsien
  1. Sub Ex()
  2.     With ActiveSheet.[C:C]  'C欄
  3.         .Cells = "=RC[-2]+RC[-1]"  '=A欄+B欄 的公式
  4.         '.Cells = .Value            '公式轉成值
  5.         '公式轉成值 優點:存檔時減少記憶體
  6.         '公式轉成值 缺點:公式參照的儲存格有改變無法立即更新
  7.     End With
  8. End Sub
複製代碼

作者: li_hsien    時間: 2014-2-14 21:24

回復 2# GBKEE

照版大的意思是指

用值的方式程式執行時會比較快速嗎???




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)