美文网首页
使用VBA数组公式

使用VBA数组公式

作者: A_rrow | 来源:发表于2019-07-25 09:44 被阅读0次

1. 数组的好处

①可作为辅助列,临时存放数值
②大大加快运算的效率

2. 如何定义数组

dim arr()

3. 动态数组和静态数组

动态数组指大小不固定,可将区域直接赋值进去
静态数组指数组固定大小,即Dim arr(1 to 5)

4. 计算数组大小

Ubound(arr) -- 返回数组的上限
Lbound(arr) -- 返回数组的下限

5. 重新定义数组大小

ReDim

6. 将区域赋值给数组

arr = range("a1:a5")

7. 数组的取值

range("a1") = Arr(行,列)

7. 数组的维度


  1. 一维数组 -- 赋值给以数组时,数组的范围要先定义好
Dim arr(1 To 4)
arr(1) = "张三"
arr(2) = "李四"
arr(3) = "王五"
'将某个值输出到单元格'
range("a1") = arr(2)
'将一维数组中的所有值输出到单元格区域'
Range("a7:d7") = arr

  1. 二维数组的赋值和输出
Dim arr(1 To 4, 1 To 2)
arr(1, 1) = "张三"
arr(1, 2) = 30
arr(2, 1) = "李四"
arr(2, 2) = 35
arr(3, 1) = "王五"
arr(3, 2) = 40
'输出到单元格区域'
Range("a15:b17") = arr

Sub test()
'静态数组,范围固定好了'
Dim arr(1 To 4)
arr(1) = "张三"
arr(2) = "李四"
arr(3) = "王五"
'数组的取值'
range("b1") = arr(2)
End Sub

将区域赋值给数组时数组就会变成二维的

dim arr()
'将区域赋值给数组'
arr = range("a1:a5")
'取值时带上行列'
range("c1") = arr(2,1)

数组可作为临时存放变量的空间

Dim arr()
Dim j, i As Integer
j = Range("a65536").End(xlUp).Row - 1
'定义数组时必须要用常量,所以待i为常量时再重新定义数组'
'此时是动态数组'
ReDim arr(1 To j)
For i = 1 To j
    arr(i) = Range("b" & i + 1) * Range("c" & i + 1)
Next
'取数组中最大的那个值'
Range("h3") = Application.WorksheetFunction.Max(arr)
'找出销售额最高的产品'
Range("h2") = Range("a" & Application.WorksheetFunction.Match(Range("h3"), arr, 0) + 1)

可借助数组提高代码的执行效率

Ag

不用数组的做法


Sub t()
Dim i, k, t
t = Timer
For i = 2 To 200000
    If Range("g" & i) = Range("n5") Then
        k = k + Range("j" & i)
    End If
Next
Range("o5") = k
MsgBox Timer - t
End Sub

最终运行所需的时间为3.1秒左右

使用数组的做法

Sub t()

Dim i, k
Dim t
Dim str As String
Dim arr()

t = Timer

arr = Range("g1:j200000")
str = Range("n5")
For i = 2 To 200000
    '注意数组取值的写法'
    If arr(i, 1) = str Then
        k = k + arr(i, 4)
    End If
Next

Range("o5") = k
MsgBox Timer - t

End Sub

最终运行的所需时间为0.3秒
两者都只是在只有一个条件下的循环,若增加条件时间相差会更为明显

相关文章

  • 使用VBA数组公式

    1. 数组的好处 ①可作为辅助列,临时存放数值②大大加快运算的效率 2. 如何定义数组 dim arr() 3. ...

  • 第六课 函数与公式

    一、在单元格中输入公式 1、用VBA在单元格中输入普通公式 2.使用循环输入公式 3.用VBA在单元格输入带引号的...

  • VBA中使用公式

    使用工作表的函数 Application.WorksheetFunction.函数公式 统计函数的初探 常用的几类...

  • 2019年1月15日工作反省

    需要改进提升 学习思维导图 学习 axure 学习墨刀 学习excel报告自动化呈现 学习数组公式 学习vba

  • [公式]使用数组公式

    合理使用数组公式可以帮助我们简化工作,达到"偷懒"的目的。 举例 当我们需要计算多项交易的平均利润时,使用普通公式...

  • VBA 知识

    VBA 编程基础 Excel VBA入门(二)数组和字典 Excel VBA 的可变类型Variant ed2k:...

  • VBA实战

    Excel大家都用的很熟悉了,包括公式,不知道大家有没有听过vba,vba是比Excel公式更为强大的工具,入门很...

  • excel中统计非空单元格时如何排除掉含有公式的单元格

    在统计非空单元格时使用COUNTA函数会将有公式的单元格也算在内排除含有公式的单元格可使用下列公式1.使用数组公式...

  • Excel从身份证号码中提取生日信息(三)

    这里讲解使用公式,用来从身份证号码里面提取生日信息。 公式一:MID函数&TEXT函数组合使用 在单元格内输入公式...

  • vba公式引用

    这个和你在工作表中的公式基本一样,工作表中怎么写,VBA中就这么写啊,你只需要将工作表的公式样式设为R1C1,然后...

网友评论

      本文标题:使用VBA数组公式

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