請問VBA內的陣列某個位置 可以是函數嗎?
例如A(1)=A(2)*2
如果可以比較複雜的巢狀函數要怎麼寫
例如=AND(AE3<=-$AK$1,L3<=$CL$1,AD3<=0,OR($Y$1=0,Y3<0),AA3<=0,AB3<=0,T3<=0)
看來要改二維陣列
對我來說短時間很難
根本不懂陣列阿~
有沒有甚麼VBA指令
會等函數都運算更新完了
再執行下一行程式的呢?
我的CPU 跑報表時 如Q9400只用了30~40%
有甚麼指令或方法可以讓程式跑更快嗎?
CPU 給他80%以上都沒關係
Excel多是用記憶體在運算?
我的記憶體只有1333的速度
如果買新電腦記憶體頻率高一點DDR4? CPU 文書型的
也能運算變快嗎?
dazzcarr wrote:
請問VBA內的陣列某個位置 可以是函數嗎?
看來要改二維陣列
對我來說短時間很難
根本不懂陣列阿~
有沒有甚麼VBA指令
會等函數都運算更新完了
再執行下一行程式的呢?
我的CPU 跑報表時 如Q9400只用了30~40%
有甚麼指令或方法可以讓程式跑更快嗎?
CPU 給他80%以上都沒關係
Excel多是用記憶體在運算?
我的記憶體只有1333的速度
如果買新電腦記憶體頻率高一點DDR4? CPU 文書型的
也能運算變快嗎?
...(恕刪)
一、不行,陣列只是拿來存資料的
但是可以把計算式(字串) or 函數(字串)放入陣列,再用程式放回工作表恢復成標準函數執行
二、慢慢學
三、有,但您工作表效率差的原因不在這裡,真的寫出來,只會等更久~久~久
四、
a、如果可以請裝64位元的excel,沒有32位也可以至少2007 or 以上
檢查選項內=>進階=>公式=>啟用多執行緒計算,是否打勾
b、先開excel,再打開工作管理員=>處理程序,找到excel=>設定優先順序=>把標準改成高或即時
(改成即時有可能會造成電腦被excel卡死,無法執行其它工作,甚至死當)
五、理論上快的電腦對計算有幫助沒錯
但是在不改變公式、程式的清況下,就算換一台10萬元的電腦,也沒什麼幫助
請參考以下2篇微軟官方文章
對於如何最佳化公式、使用陣列、加速vba...等改善效能,有非常詳細的說明、範列
https://msdn.microsoft.com/zh-tw/library/office/ff726673(v=office.14).aspx
https://msdn.microsoft.com/zh-tw/library/office/ff700515(v=office.14).aspx
****以下是微軟說的****,實際上也是這樣沒錯,前提是工作表、vba要設計好
您可利用 Excel 2010 有效率地管理大上許多的工作表,也在計算速度方面大幅提升效能。當我們建立大型工作表時,很容易不小心就把它們設計成計算緩慢的結構。龜速的工作表會提高出錯的風險,因為使用者難以在計算期間保持專注。
藉由使用一系列簡單明瞭的技巧,便可以讓原本龜速的工作表加快 10 到 100 倍。下次您在設計和建立工作表時,別忘了運用這些技巧,有效提升計算速度喔。
內文搜尋
X




























































































