Board logo

標題: [發問] 函數使用哪種比較快 [打印本頁]

作者: li_hsien    時間: 2014-1-29 17:30     標題: 函數使用哪種比較快

請問各位大大

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

目前我做法有兩種寫法

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

第1種好像就跟直接在工作表操作函數一樣,會有公式存在
第2種結果是一樣,但直接是值吧?
(我用方法1碰上大筆資料,會只做第一個儲存格,再用filldown的方式下拉。方法2我是會用FOR迴圈由上往下跑)
不知以上這兩種方式哪個比較快速,適合大筆資料使用

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

麻煩各位大大

謝謝   :   )
作者: kimbal    時間: 2014-1-29 19:40

本帖最後由 kimbal 於 2014-1-29 19:43 編輯

可否提供一下1 後面的公式?
.Range("B2").FormulaR1C1 =...

編輯:
可否提供一下兩個方法的完整句子/XLS?
看整個配搭會比較準確
作者: li_hsien    時間: 2014-1-30 11:08

回復 2# kimbal

我也不知程式碼差異大不大

主要應該是比較用Application 和 Formula的差異吧????

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)

看起來是上面的做法比較快嗎???

呵呵  我也不清楚

給大大參考看看

謝謝 :  )




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