如何在VBA中将2d数组的一维分配给新的1d数组

Ade*_*den 7 arrays ms-access vba visual-studio

我需要能够创建一个newarray并将其分配给another2darray(atsomeelement)

array1(0) = 1
array1(1) = 2
Run Code Online (Sandbox Code Playgroud)

现在

array2(0) = array1
Run Code Online (Sandbox Code Playgroud)

因此

array2(0)(0) = 1
array2(0)(1) = 2
Run Code Online (Sandbox Code Playgroud)

现在我想创建一个新数组并为其分配array2的1d.

newarray = array2(0)
Run Code Online (Sandbox Code Playgroud)

因此

newarray(0) = 1
newarray(1) = 1
Run Code Online (Sandbox Code Playgroud)

我无法在VBA代码中执行此操作.
下面的代码段,如果您注释掉我尝试分配的最后一个部分,则array2(1)有效arraynew.

Function test()
    Dim array1(0 To 20) As String
    Dim array2(0 To 5) As Variant
    Dim count As Integer

    For count = 0 To UBound(array1)
     array1(count) = count
    Next count

    'now that array1 is filled i want to insert it into array2(1)
    array2(1) = array1

    ' test
    MsgBox (array2(1)(3))

    'now i want to create a new string array and assign it to array2(1)
    Dim arraynew(0 To 20) As String
    arraynew = array2(1)
    'this is what fails. 

End Function
Run Code Online (Sandbox Code Playgroud)

GSe*_*erg 7

您无法分配固定大小的数组.将其声明为动态的.

Dim arraynew() As String
arraynew = array2(1) 
Run Code Online (Sandbox Code Playgroud)

  • @Aden:欢迎来到stackoverflow,如果这个答案适合你,请点击答案左边的勾选接受它 - 请参阅http://meta.stackexchange.com/questions/5234了解更多信息 (3认同)