數組的存在價值就是讓代碼提速。
數組和非數組的差異只在於數據的保存和讀取方式不同,雖然操作這些數據的方法或者函數並沒有不同,但是保存與讀取上的差異卻使VBA代碼在處理數據時實現了質的飛躍。在完成相同工作時,使用數組比非數組的效率有可能提升幾倍乃至幾十倍,數組對於VBA而言舉足輕重。
1、數組的定義:
數組就是連續可索引的具有相同內在數據類型的元素的集合,數組中的每一元素具有唯一索引號。簡單而言,數組就是一組相同類型的數據集合。
數組支持一到六十維,不過常用的是一維數組和二維數組。
通常可以借助區域來理解數組,因為數組存在於內存中,顯得虛無縹緲,而區域則比較形象化。
事實上,數組和區域之間是相互依存的關系,工作中會經常將區域中的數據導出到數組中,當在數組中處理完畢后,又需要將數據從數組導出到區域中。
2、數組的特點:
(1)包含多個元素
(2)讀取速度快
計算機在讀取數據時,軟盤 > 光盤 > U盤 > 硬盤 > 內存,從軟盤中讀取的速度最慢,最快的是內存。而讀取EXCEL工作表的單元格中的數據時相當於硬盤級速度,讀取數組中的數據則相當於內存級速度,所以數組的運算速度快於區域的運算速度。
在使用數組時,通常將區域中的值讀取到內存中,然后再針對數組執行各種運算,運算完畢后再根據需求將結果寫入相應的區域或者單元格中。
換言之,使用數組就是盡量減少讀取單元格的次數,替之以讀取內存,從而提高代碼執行效率。
(3)不能常駐內存
內存中的數據生命周期不長,不像工作表那樣可以長期保留數據。
VBA中數組的載體其實是指數組變量或集合(Collection),它們都會在結束過程或者關閉工作簿后自動消失,所以數組僅用於臨時保存數據,在內存中處理數據后需要再將數據導出到區域中。數據無法長期駐留於數組中。