- 帖子
- 835
- 主題
- 6
- 精華
- 0
- 積分
- 915
- 點名
- 0
- 作業系統
- Win 10,7
- 軟體版本
- 2019,2013,2003
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2010-5-3
- 最後登錄
- 2024-11-14
|
7#
發表於 2013-10-2 23:31
| 只看該作者
本帖最後由 luhpro 於 2013-10-2 23:32 編輯
回復 5# GBKEE
嗯...有看到了,謝謝你告訴我.
不過就像我上面所說的,
我再次用單步跑過Workbook_Open一遍,
發現即使該功能只有在 Sheets("進階整理") 中才有公式去引用到,
然而即便只是變更 Sheets("股票代碼") 裡的儲存格內容(根本與該Function無關),
那個 Function Trans2Mon 仍然是把所有有引用到該公式的儲存格全部都重新計算一次, (任一Sheet中的任何一個儲存格內容變更,它都會全部都再計算一輪 O.O" )
難怪把那個 Function 拿掉後速度差那麼多.
我試了一下, 把那 12 個儲存格公式改為 :- =CONCATENATE(MID(INDIRECT(ADDRESS(221 - (COLUMN() - 2) * 20,1,1,1,"近一年資料"),1),6,3),"/",MID(INDIRECT(ADDRESS(221 - (COLUMN() - 2) * 20,1,1,1,"近一年資料"),1),10,2))
複製代碼 就可以把 Function Trans2Mon 拿掉了,
感覺上速度似乎有比較快.
甚至若把 INDIRECT(ADDRESS(221 - (COLUMN() - 2) * 20,1,1,1,"近一年資料"),1) 分割出來另用儲存格存放,
公式也能更簡化, 速度應該也會更快.
我想我以後會儘量避免在儲存格公式中引用 Function,
因為非必要的計算動作-loading 太重太多了. |
|