當你參考這一篇文章 [利用EXCEL來管理我的基金(自動更新淨值、自動計算報酬率)]建立起你的基金管理表後,可能會發現一個問題,開啟管理表後,雖然選擇了"啟用自動更新",但是基金淨值確無法完全自動更新,還是得自動一個一個手動更新,這到底是什麼原因呢?疑?,我也不知道,要問Microsoft大人,不過還是有另外的解決方法,現在就來教各位怎麼解決這個問題吧。
進入EXCEL並開啟你的基金管理表後,就來寫程式吧,啥米?要寫程式喔?
放心的,不會很難,超簡單,看下去就知道了,先進入Excel內的Visual Basic 編輯器中。
進入Visual Basic編輯器後,插入模組。
點左邊的Module1,並在右邊的視窗中,寫下以下的程式碼:(直接拷貝貼上下面的程式碼吧)
Public Sub LiveUpdate()
For i = 0 To Sheets.Count - 1 Cells.Select
ActiveWorkbook.RefreshAll Next i
End Sub
上面的迴圈拿掉不寫才對,否則會重覆執行,只寫這樣(感謝vest指教):
Public Sub LiveUpdate()
ActiveWorkbook.RefreshAll
End Sub
再來點左邊的ThisWorkbook,並在右邊輸入以下程式碼。
Private Sub Workbook_Open()
Call LiveUpdate
End Sub
然後關閉Visual Basic編輯器吧。
再來要設定每次開啟這個檔案時就自動執行這些動作(巨集)。
設成每次開啟含有巨集的xls檔案時,就詢問我是否允計執行,不要設成"低"喔,免得開啟別的惡意的xls檔時,電腦就X#!@%!@$%!@#
當開啟您的基金管理表時,就會詢問你是否要啟用巨集,用力的給他按下去吧,因為是自己寫的程式,不怕電腦被破壞唷。
大功告成,所有淨值都會開始自動更新了。
為什麼我都做了,依然後面的欄位,不會自動帶入資料呢?
[回應]
我在進行程式碼撰寫〈copy〉那部份步是要各貼上不同的程式碼嗎?
但是怎麼我只要貼其中一個程式碼,令一個程式碼就會變的一模一樣
有人可以告訴我嗎?
[回應]
真的太神奇了…謝謝囉
[回應]
建議 版大 將美林世礦 加 (美元) 與 (歐元)區別, thanks!!
[回應]
疑?真的說,不加迴圈也行耶!厲害唷
[回應]
請教一下一個程式上的問題
Liveupdate中,這段迴圈看來好像是
重複refreshAll 多次
但我實驗後發現refreshAll只要呼叫一次
就會更新所有工作表了說
重複refreshAll 多次的理由是為了保險起見嗎??
還請不吝指教~^_^
[回應]