数组的使用

来源:互联网 发布:平板看电视直播软件 编辑:程序博客网 时间:2024/06/08 01:27
[a2:f2] = Array(1, 2, 3, 4, 5, 6)
[a4:a9] = WorksheetFunction.Transpose(Array(1, 2, 3, 4, 5, 6))


数组的使用可以加快运算速度,比较实现同样功能的不同写法,本质相同。

Sub t()
Dim arr, ar, n%
arr = Range("a1", [a1].End(xlDown))
For Each ar In arr
    If ar >= 60 Then n = n + 1
Next ar
    MsgBox "共有" & n & "人及格"
End Sub


Sub tt()
Dim rng As Range, rngs as range,n%
set rngs= Range("a1", [a1].End(xlDown))

For Each rng In rngs
    If rng.Value >= 60 Then n = n + 1
Next rng
    MsgBox "共有" & n & "人及格"


End Sub


数组的使用:


Sub y()
Dim arr, n%
arr = Range("b1", "c19")‘可见我们创建了一个二维数组,并将共15行2列的区域赋值给该数组的每个元素’


For i = 1 To 19
    If arr(i, 1) = "A" Then n = arr(i, 2) + n
Next
    MsgBox "属性A的得分为" & n
End Sub



数组的嵌套

Sub y()
Dim arr, n%, arr1(1 To 19), i%‘这里定义arr1的数组共一个维度,15个元素’
arr = Range("b1", "c19")
For i = 1 To 19
    If arr(i, 1) = "A" Then n = n + 1
    arr1(n) = arr(i, 2)‘将数组arr中的第二个数字(即属性A的得分)赋值给数组arr1’
Next
    MsgBox "属性a的得分为" & WorksheetFunction.Sum(arr1)
    
End Sub


动态数组

在定义arr的时候采用redim函数:

redime arr(1 to num)‘其中num是动态获得的数字’

也可以在使用过程中采取:

dim arr()‘注意此时括号要保留,内部不填写数组的元素个数’

n=n+1

redim preserve arr (1 to n)




0 0