1 數(shù)組旳大小
Lbound(數(shù)組)可以獲取數(shù)組的最小下標
Ubound(數(shù)組)可以獲取數(shù)組的最大上標
Ubound(數(shù)組腺毫,1)可以獲取數(shù)組的行方面最大上標
Ubound(數(shù)組款熬,2)可以獲取數(shù)組的列方向最大上標
2 動態(tài)數(shù)組的動態(tài)擴充
2.1一維數(shù)組的擴充
如果一個數(shù)組無法或者不方便計算出總的大小,而在一些特殊情況下又不允許有空位江解,這時我們就需要用動態(tài)的導入方法
Private Sub ComboBox1_GotFocus()
Dim arr(), x, arr1, k
arr1 = Range("a1:a10")
For x = 1 To UBound(arr1)
If arr1(x, 1) > 10 Then
k = k + 1
ReDim Preserve arr(1 To k)
arr(k) = arr1(x, 1)
End If
Next x
ComboBox1.List = arr
End Sub
運行有問題,暫時沒發(fā)現(xiàn)
2.2 二維數(shù)組的擴充
Sub t11()
Dim arr, arr1()
arr = Range("a1:d6")
Dim x, k
For x = 1 To UBound(arr)
If arr(x, 1) = "B" Then
k = k + 1
ReDim Preserve arr1(1 To 4, 1 To k) '應該是K行四列徙歼,把行當成列犁河,把列當成行鳖枕。在列的方向擴充。
arr1(1, k) = arr(x, 1)
arr1(2, k) = arr(x, 2)
arr1(3, k) = arr(x, 3)
arr1(4, k) = arr(x, 4)
End If
Next x
Range("a8").Resize(k, 4) = Application.Transpose(arr1) '行列轉置
End Sub
這樣擴充的方法比較難以掌握桨螺”龇可以用以下的方法
Sub d8()
Dim arr, arr1(1 To 1000, 1 To 4)
arr = Range("a1:d6")
Dim x, k
For x = 1 To UBound(arr)
If arr(x, 1) = "B" Then
k = k + 1
arr1(k, 1) = arr(x, 1)
arr1(k, 2) = arr(x, 2)
arr1(k, 3) = arr(x, 3)
arr1(k, 4) = arr(x, 4)
End If
Next x
Range("a15").Resize(k, 4) = arr1
End Sub
3 清空數(shù)組
把原來數(shù)據(jù)清除掉重新裝
erase arr1
Sub d9()
Dim arr, arr1(1 To 1000, 1 To 1)
Dim x, m, k
arr = Range("a1:a16")
For x = 1 To UBound(arr)
If arr(x, 1) <> "" Then
k = k + 1
arr1(k, 1) = arr(x, 1)
Else
m = m + 1
Range("c1").Offset(0, m).Resize(k) = arr1
Erase arr1 '數(shù)組清空,重新裝數(shù)據(jù)
k = 0 'k也需要初始一下灭翔,k是計數(shù)器
End If
Next x
End Sub