二十一讲 数组2 读取

VBA数组

1.在内存中读取

在内存中读取后用于继续运算,直接用下面的格式。表示编号是5的数字,并不是行数。如编号从-1开始,数组变量(5)是第七个数据。

数组变量(5)

数组变量(3,4)

3和4只是表示行,列编号,并不是行数和列数。

Sub t6()

Dim arr, arr1()

Dim x As Integer, k As Integer, m As Integer

arr = Range("a1:a10") 'arr 是二维数组

m = Application.CountIf(Range("a1:a10"), ">10")

ReDim arr1(1 To m) 'arr1是一维数组

For x = 1 To 10

If arr(x, 1) > 10 Then

k = k + 1

arr1(k) = arr(x, 1)

End If

Next x

Stop

End Sub

2 读取存入单元格中

2.1二维数组存入单元格

Sub t8()

Dim arr, arr1(1 To 5, 1 To 1)

Dim x As Integer

arr = Range("b2:c6")   '把需要计算的两列放入数组中

For x = 1 To 5

arr1(x, 1) = arr(x, 1) * arr(x, 2)

Next x

Range("d2").Resize(5) = arr1

End Sub

2.2 一维数组存入单元格

Sub t9()

Dim arr, arr1(1 To 5)

Dim x As Integer

arr = Range("b2:c6")

For x = 1 To 5

arr1(x) = arr(x, 1) * arr(x, 2)

Next x  '一维数组和单元格的对应关系是一行的关系

'range("a13").resize(1,5)=arr1 这时候对应的就是A13开头的一行五列数据

Range("d2").Resize(5) = Application.Transpose(arr1)

End Sub

2.3 数组部分存入

Sub t10()

Dim arr, arr1(1 To 10000, 1 To 1)

Dim x As Integer

arr = Range("b2:c6")

For x = 1 To 5

arr1(x, 1) = arr(x, 1) * arr(x, 2)

Next x

Range("d2").Resize(5) = arr1 ‘这个存储的容器多大取决于左面的范围,而不是取决于arr1 的大小,只需要arr1的范围大于左侧就不会提示出错。

End Sub

你可能感兴趣的:(二十一讲 数组2 读取)