[基金]EXCEL基金管理表自動更新淨值失敗,怎麼辦?

當你參考這一篇文章 [利用EXCEL來管理我的基金(自動更新淨值、自動計算報酬率)]建立起你的基金管理表後,可能會發現一個問題,開啟管理表後,雖然選擇了"啟用自動更新",但是基金淨值確無法完全自動更新,還是得自動一個一個手動更新,這到底是什麼原因呢?疑?,我也不知道,要問Microsoft大人,不過還是有另外的解決方法,現在就來教各位怎麼解決這個問題吧。

進入EXCEL並開啟你的基金管理表後,就來寫程式吧,啥米?要寫程式喔?

放心的,不會很難,超簡單,看下去就知道了,先進入Excel內的Visual Basic 編輯器中。

 1


進入Visual Basic編輯器後,插入模組。

2

點左邊的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

3

再來點左邊的ThisWorkbook,並在右邊輸入以下程式碼。


Private Sub Workbook_Open()
Call LiveUpdate
End Sub

4

然後關閉Visual Basic編輯器吧。

再來要設定每次開啟這個檔案時就自動執行這些動作(巨集)。

5

設成每次開啟含有巨集的xls檔案時,就詢問我是否允計執行,不要設成"低"喔,免得開啟別的惡意的xls檔時,電腦就X#!@%!@$%!@#

6

當開啟您的基金管理表時,就會詢問你是否要啟用巨集,用力的給他按下去吧,因為是自己寫的程式,不怕電腦被破壞唷。

7

大功告成,所有淨值都會開始自動更新了。

在〈[基金]EXCEL基金管理表自動更新淨值失敗,怎麼辦?〉中有 6 則留言

  1. 我在進行程式碼撰寫〈copy〉那部份步是要各貼上不同的程式碼嗎?
    但是怎麼我只要貼其中一個程式碼,令一個程式碼就會變的一模一樣
    有人可以告訴我嗎?

    [回應]

    回覆
  2. 請教一下一個程式上的問題
    Liveupdate中,這段迴圈看來好像是
    重複refreshAll 多次
    但我實驗後發現refreshAll只要呼叫一次
    就會更新所有工作表了說
    重複refreshAll 多次的理由是為了保險起見嗎??
    還請不吝指教~^_^

    [回應]

    回覆

發佈留言