VBA中 ReDim

ReDim 是VBA中用于重新维度化数组的关键字。它的主要用途是更改数组的维数、大小或类型。

语法

ReDim [Preserve] 数组名称([维数]) [As 数据类型] [To 上界]

Preserve:可选关键字,用于保留数组的现有数据。如果未使用 Preserve,则重新维度化数组后将丢失现有数据。
数组名称:要重新维度化的数组的名称。
维数:可选参数,指定数组的维数。
As 数据类型:可选参数,指定数组元素的数据类型。如果省略,数据类型将保持不变。
To 上界:可选参数,指定数组的上界。

用法

1. 创建动态数组

通过 ReDim 可以在运行时创建数组,无需事先知道数组的大小。

Sub aa()
    Dim MyArray() As Integer ' 声明一个未初始化的数组
    ReDim MyArray(5) ' 创建一个包含 6 个整数的数组,数组的索引从0开始
End Sub
'或者
Sub aa()
    Dim MyArray() As Integer ' 声明一个未初始化的数组
    ReDim MyArray(1 To 5)  ' 创建一个包含 5 个整数的数组,数组的索引从1开始
End Sub

2. 重新维度化数组

ReDim 允许您更改现有数组的大小或维数。

Sub aa()
    Dim MyArray() As Integer ' 声明一个未初始化的数组
    ReDim MyArray(5)
    ReDim MyArray(10) ' 将数组的大小更改为 11 个整数
End Sub

3. 保留数组数据

使用 Preserve 关键字可以保留现有数组数据,即使重新维度化数组也能保留部分或全部数据。

Sub aa()
    Dim MyArray() As Integer ' 声明一个未初始化的数组
    ReDim MyArray(5)
    For i = 0 To 5
        MyArray(i) = 1
    Next
    ReDim Preserve MyArray(15) ' 保留现有数据,数组大小变为 16 个整数
End Sub

4. 多维数组

ReDim 可用于创建和重新维度化多维数组。

Sub aa()
    Dim MyMatrix() As Double ' 未初始化的二维数组
    ReDim MyMatrix(1 To 3, 1 To 4) ' 创建一个 3x4 的二维数组
End Sub

应用场景

ReDim 在 VBA 中具有多种应用场景,包括但不限于:

1. 动态数据集合:ReDim 用于创建可变大小的数据集合,以应对不同数据量的情况。

2. 读取和处理文件:在读取外部文件时,ReDim 可用于根据文件大小调整数组大小,以保存文件数据。

3. 多维数组:用于创建多维数组,以便在各种数据分析任务中处理复杂数据结构。

4. 优化内存使用:ReDim 可用于在程序运行时动态分配内存,以减小内存占用。

5. 递增性数据处理:在递增性数据处理中,ReDim 可用于扩展数据集。

示例

Sub aa()
    Dim MyDynamicArray() As Integer
    Dim i As Integer

    ' 初始化数组
    ReDim MyDynamicArray(1 To 5)
    
    ' 向数组添加元素
    For i = 1 To 5
        MyDynamicArray(i) = i
    Next i

    ' 打印数组内容
    For i = LBound(MyDynamicArray) To UBound(MyDynamicArray)
        Debug.Print MyDynamicArray(i)
    Next i

    ' 重新维度化数组,添加更多元素
    ReDim Preserve MyDynamicArray(1 To 10)

    ' 添加更多元素
    For i = 6 To 10
        MyDynamicArray(i) = i
    Next i

    ' 打印重新维度化后的数组内容
    For i = LBound(MyDynamicArray) To UBound(MyDynamicArray)
        Debug.Print MyDynamicArray(i)
    Next i
End Sub

此示例演示了如何使用 ReDim 创建和重新维度化动态数组,并保留现有数据。首先,我们初始化了一个包含5个整数的数组,然后向数组添加元素。接着,我们使用 ReDim Preserve 扩展数组,添加更多元素。

总之,ReDim 是一个强大的VBA关键字,用于处理动态数据集合、数组和多维数组的大小和维数。在处理不确定数据量或需要在运行时调整数据结构大小的情况下,ReDim 可以提供灵活性和效率。

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值