(五)VBA常用基础知识:数组2

文章讲述了在VBA中使用数组时,如何追加元素以及使用`Redim`和`ReDimPreserve`的不同效果。`Redim`会增加大小但清空原有数据,而`ReDimPreserve`则能保持原有数据并增加大小。
摘要由CSDN通过智能技术生成
  1. 数组size固定的场合,追加元素,会报错
Sub Hello()
    Dim arr() As String
    Dim str As String
    str = "1,2,3,4,5"
    arr = Split(str, ",")
    For i = 0 To UBound(arr)
        Debug.Print arr(i)
    Next
    Debug.Print "--------------"
    arr(5) = "6"
    For i = 0 To UBound(arr)
        Debug.Print arr(i)
    Next
    
End Sub
输出结果:
    1
    2
    3
    4
    5
    --------------

在这里插入图片描述
2.使用redim 重新定义数组的size,看下结果

Sub Hello()
    Dim arr() As String
    Dim str As String
    str = "1,2,3,4,5"
    arr = Split(str, ",")
    For i = 0 To UBound(arr)
        Debug.Print arr(i)
    Next
    Debug.Print "--------------"
    ReDim arr(UBound(arr) + 1)
    arr(5) = "6"
    For i = 0 To UBound(arr)
        Debug.Print arr(i)
    Next
    
End Sub
输出结果:
1
2
3
4
5
--------------





6

※6之前的五个数字被清空了,所以输出是空白,但是size确实增加了
3.那么怎样才能又能改变size,又能保持之前的数据呢?

Sub Hello()
    Dim arr() As String
    Dim str As String
    str = "1,2,3,4,5"
    arr = Split(str, ",")
    For i = 0 To UBound(arr)
        Debug.Print arr(i)
    Next
    Debug.Print "--------------"
    ReDim Preserve arr(UBound(arr) + 1)
    arr(5) = "6"
    For i = 0 To UBound(arr)
        Debug.Print arr(i)
    Next
    
End Sub
输出结果:
1
2
3
4
5
--------------
1
2
3
4
5
6

4.综合2和3得到结果,直接使用redim会增加size,但是会清空之前的数据,使用ReDim Preserve会既增加size,同时保持住之前的数据
5.数组清空,相当于初期化

Sub Hello()
    Dim arr() As String
    Dim str As String
    str = "1,2,3,4,5"
    arr = Split(str, ",")
    For i = 0 To UBound(arr)
        Debug.Print arr(i)
    Next
    Debug.Print "--------------111"
    ReDim Preserve arr(UBound(arr) + 1)
    arr(5) = "6"
    For i = 0 To UBound(arr)
        Debug.Print arr(i)
    Next
    Debug.Print "--------------222"
    Erase arr
    Debug.Print arr(0)
End Sub

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值