2013-03-05 73 views
1

這裏是VBA的新手。我們可以在C/C++中將變量定義爲「Register」,用於非常頻繁訪問的變量,即前循環迭代器變量。在VBA中聲明變量註冊表?

在Visual Basic for Application中是否存在類似的系統?我正在使用EXCEL VBA進行編程,並從其他應用程序中提取數據。

我的算法的性質需要6級嵌套循環,所以想讓它們更快。他們已經運行了最後30分鐘:D

+2

當前的C/C++編譯器只是忽略了'register'關鍵字(他們做的比這反正一個更好的工作) 。並且AFAIU VBA是_interpreted_,所以這沒有多大意義。 – vonbrand 2013-03-05 20:02:25

+4

我會看看循環在做什麼,而不是循環本身。 VBA被編譯爲字節碼(並且這可能在運行時發生),所以優化將通過減少循環體中完成的工作來獲得,而不是將變量添加到變量的速度有多快。 – SeanC 2013-03-05 20:15:50

+0

我會使用不同的體系結構。 VBA並不是專爲繁重的工作和數據管理/維護工作而設計的。 – 2013-03-05 21:17:27

回答

0

VBA中沒有寄存器類型。

你的問題可能與循環所做的事情有關,而不是變量類型聲明。

您是否嘗試過關閉屏幕更新,以節省資源:

Application.screenupdating=false ' at the start 
' do the work 
Application.screenupdating=true ' at the end 

HTH 菲利普