Board logo

標題: 函數會比VBA快嗎? [打印本頁]

作者: am0251    時間: 2011-7-5 17:41     標題: 函數會比VBA快嗎?

我有一個檔案,內有"HB001~HB005","TOTAL"的分頁,我想在"TOTAL"的一頁中看到"HB001~HB005"的其中一行,我都用了VLOOKUP,但如果要用VBA寫的話會比快嗎?因為這檔案可能會加到30~50頁,如果我要Worksheet_Activate時運作,會比函數快嗎?
作者: am0251    時間: 2011-7-5 17:43

上傳附件~~[attach]6917[/attach]
作者: oobird    時間: 2011-7-5 22:00

你用vlookup函數,執行速度上不錯的
若數據量很大執行起來速度慢再討論吧。
作者: hugh0620    時間: 2011-7-6 11:39

樓主~ 函數與VBA的速度快慢應該不是主要的問題!!
             是否該更深層的思考~ 整個資料面的筆數及使用者使用的方式
             若它是一個制式的報表資料數量又很大~ 造成您在更新維護上有問題~
             可考慮用VBA的方式處理會比較好~
             若您的資料格式是不統一的~ 那只好用函數來處理比較快~
             總好比你辛苦設計出來~ 結果資料格式都不一樣~ 浪費你簡化的用心~
作者: am0251    時間: 2011-7-6 13:52

謝謝兩位的意見,如果我要用VBA寫的話,可以給我點意見嗎?因為我本來想讓它在Worksheet_Activate時運行的,可是如果每次Worksheet_Activate都要跑一遍VlookUp / SpecialCells 的話可能會很久,我該如何設計呢?
作者: chin15    時間: 2011-7-6 20:27

那就不要用事件呀,寫一般模組,須要時再去執行即可。
作者: Hsieh    時間: 2011-7-6 20:57

回復 5# am0251
這就是VBA取捨的重點所在
你既然考慮速度問題,那麼如果VBA中還是使用工作表函數來進行運算
那麼不管在怎麼快也不會比工作表中直接使用函數來的快
只是函數寫入儲存格中會造成自動重算的問題
如果這個因素,只須關閉選項中的自動重算項目即可改善
也就是說適時的重算
基本上要達到同樣目的,首先會考慮EXCEL基本功能操作,其次是函數,再來才考慮使用VBA
以上僅供參考
作者: am0251    時間: 2011-7-7 17:14

謝謝各高手的意見,可是,如果我用函數的話,當選擇資料格時可以只看到結果而看不到函數嗎?
作者: jimmyhk    時間: 2011-8-29 10:38

謝謝各高手的意見,可是,如果我用函數的話,當選擇資料格時可以只看到結果而看不到函數嗎?
am0251 發表於 2011-7-7 17:14


這樣做的目的是.....?
不想給人知道寫法還是怕被人更改?
作者: am0251    時間: 2011-8-30 14:36

全中了,就是怕給人知道寫法,也怕被人不小心更改了
作者: koiiven    時間: 2011-9-7 16:52

可以用保護工作表

先從儲存格格式中的保護來設定UNIT的屬性
再到校閱中保護工作表即可

小弟是新手= =  僅供參考




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