读写数组中的元素速度通常都慢于访问一个简单变量,因此,如果在一个循环中要重复使用同一数组元素值,就应该分配数组元素值到临时变量中并使用这个变量。下面举一个例子,检测整数数组中是否存在重复项: Function AnyDuplicates(intArray() As Integer) As Boolean '如果数组包含重复项,返回True Dim i As Long, j As Long, Dim lastItem As Long Dim value As Integer '只计算机UBound()一次 lastItem = UBound(intArray) For i = LBound(intArray) To lastItem ' 保存intArray(i)到非数组变量中 value = intArray(i) For j = i + 1 To lastItem If value = intArray(j) Then AnyDuplicates = True Exit Function End If Next Next '没有发现重复项 AnyDuplicates = False End Function 上述程序有2层循环,通过缓存intArray(i)的数值到一个普通的、非数组变量中,节省了CPU运行时间。经测试,这将提高80%的速度。  
|