VBA入门到进阶常用知识代码总结21

第21集 VBA数组-2:数组的读取
95、 在内存中读取
Sub d1()
Dim arr, arr1()
Dim x As Integer, k As Integer, m As Integer
arr = Range(“a1:a10”) '把单元格区域导入内存数组中
m = Application.CountIf(Range(“a1:a10”), “>10”) '计算大于10的个数
ReDim arr1(1 To m)
For x = 1 To 10
If arr(x, 1) > 10 Then
k = k + 1
arr1(k) = arr(x, 1) ‘两个数组在内存中赋值
End If
Next x
End Sub
96、 读取存入单元格中
二维数组元素在内存中存放方式和单元格一致,行列对应。
Sub d2() '二维数组存入单元格
Dim arr, arr1(1 To 5, 1 To 1) ‘定义arr1为二维数组,5行1列区域
Dim x As Integer
arr = Range(“b2:c6”) ‘单元格区域赋值给arr,arr变成一个二维数组,5行2列
For x = 1 To 5
arr1(x, 1) = arr(x, 1) * arr(x, 2) ‘计算结果存入arr1数组中
Next x
Range(“d2”).Resize(10) = arr1 ‘arr1赋值到单元格区域,arr1后不能加()
End Sub
一维数组元素在内存中按照一行存放,如果要赋值到单元格的一列,需要用转置函数。
Sub d3() '一维数组存入单元格
Dim arr, arr1(1 To 5) ‘定义arr1为一维数组
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
Range(“d2”).Resize(5) = Application.Transpose(arr1) ‘放到一列中需要用转置函数
End Sub
数组空间大小需要≥单元格区域,数组将按照角标从小到大部分赋值,不然赋值显示错误值#N/A。
Sub d4() '数组部分存入
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
End Sub

发布了47 篇原创文章 · 获赞 0 · 访问量 231

猜你喜欢

转载自blog.csdn.net/tiansdk320/article/details/104351234