清除動(dòng)態(tài)數(shù)組的最快方法是使用ReDim,清除靜態(tài)數(shù)組則是使用刪除。但是如果只想清除數(shù)組的一部分內(nèi)容,怎么辦呢?看上去似乎只能使用For-Next循環(huán)了。
如果處理的是數(shù)字?jǐn)?shù)組,有一個(gè)較快的方法。它基于ZeroMemory API函數(shù),正如函數(shù)名所示,它能將一塊內(nèi)存區(qū)域填充為0??纯丛趺磻?yīng)用這個(gè)函數(shù)來(lái)清除一個(gè)Long類(lèi)型數(shù)組的一部分內(nèi)容:
Private Declare Sub ZeroMemory Lib "kernel32" Alias "RtlZeroMemory" (dest As Any, ByVal Bytes As Long)
'定義數(shù)組,填充數(shù)據(jù)
Dim a(1000) As Long
For i = 1 To UBound(a)
a(i) = i
Next
'從a(200)開(kāi)始清除100個(gè)元素內(nèi)容
ZeroMemory a(200), 100 * Len(a(1))
請(qǐng)注意上述代碼中清除長(zhǎng)度的表示方法,使用Len()函數(shù)保證了當(dāng)數(shù)組類(lèi)型改變時(shí)代碼仍然有效。
如果處理的是數(shù)字?jǐn)?shù)組,有一個(gè)較快的方法。它基于ZeroMemory API函數(shù),正如函數(shù)名所示,它能將一塊內(nèi)存區(qū)域填充為0??纯丛趺磻?yīng)用這個(gè)函數(shù)來(lái)清除一個(gè)Long類(lèi)型數(shù)組的一部分內(nèi)容:
Private Declare Sub ZeroMemory Lib "kernel32" Alias "RtlZeroMemory" (dest As Any, ByVal Bytes As Long)
'定義數(shù)組,填充數(shù)據(jù)
Dim a(1000) As Long
For i = 1 To UBound(a)
a(i) = i
Next
'從a(200)開(kāi)始清除100個(gè)元素內(nèi)容
ZeroMemory a(200), 100 * Len(a(1))
請(qǐng)注意上述代碼中清除長(zhǎng)度的表示方法,使用Len()函數(shù)保證了當(dāng)數(shù)組類(lèi)型改變時(shí)代碼仍然有效。