美文网首页零基础自学VBA
二十一讲 数组2 读取

二十一讲 数组2 读取

作者: 肉丸子豆 | 来源:发表于2017-04-27 07:35 被阅读7次

    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 读取

        本文链接:https://www.haomeiwen.com/subject/xplrzttx.html