Excel VBA - 将一维数组添加到多维数组而不循环

vbaexcel

1个回答

写回答

何piao亮

2025-06-14 03:15

+ 关注

excel
excel

使用excel VBA编程时,我们经常需要处理数组。在某些情况下,我们需要将一个一维数组添加到一个已存在的多维数组中,而不需要使用循环。这样可以提高代码的效率和执行速度。本文将介绍如何通过excel VBA将一维数组添加到多维数组的方法,并提供一个实际案例代码以帮助读者更好地理解。

在开始之前,让我们先了解一下什么是一维数组和多维数组。一维数组是一系列按照特定顺序排列的变量集合。多维数组则是由多个一维数组组成的结构。在excel VBA中,我们可以使用数组来存储和处理大量的数据。

要将一个一维数组添加到一个多维数组中,我们可以使用内置函数Resize来调整多维数组的大小,并使用Transpose函数将一维数组转置为行数组。下面是一个示例代码,演示了如何将一维数组添加到一个已存在的多维数组中:

VBA

Sub AddArrayToMultiArray()

Dim multiArray() As Variant

Dim singleArray() As Variant

Dim i As Integer

' 初始化多维数组

ReDim multiArray(1 To 3, 1 To 3)

multiArray(1, 1) = "A"

multiArray(1, 2) = "B"

multiArray(1, 3) = "C"

multiArray(2, 1) = "D"

multiArray(2, 2) = "E"

multiArray(2, 3) = "F"

multiArray(3, 1) = "G"

multiArray(3, 2) = "H"

multiArray(3, 3) = "I"

' 初始化一维数组

singleArray = Array("J", "K", "L")

' 将一维数组添加到多维数组的最后一行

ReDim Preserve multiArray(1 To UBound(multiArray, 1) + 1, 1 To UBound(multiArray, 2))

For i = 1 To UBound(singleArray)

multiArray(UBound(multiArray, 1), i) = singleArray(i - LBound(singleArray))

Next i

' 输出结果

For i = 1 To UBound(multiArray, 1)

For j = 1 To UBound(multiArray, 2)

Debug.Print multiArray(i, j)

Next j

Next i

End Sub

在上面的代码中,我们首先声明了一个多维数组multiArray和一个一维数组singleArray。然后,我们通过ReDim语句将多维数组调整为3行3列,并初始化其值。接下来,我们初始化一维数组并将其添加到多维数组的最后一行。最后,我们通过嵌套的循环输出多维数组的值。

举报有用(4分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号