Как назначить одно измерение 2d-массива новому 1d-массиву в VBA - PullRequest
7 голосов
/ 13 января 2012

Мне нужно иметь возможность создать новый массив и назначить его другому 2darray (atsomeelement)

Пример

array1(0) = 1
array1(1) = 2

и сейчас

array2(0) = array1

и, следовательно,

array2(0)(0) = 1
array2(0)(1) = 2

Теперь я хочу взять новый массив и присвоить ему 1d массива 2.

newarray = array2(0)

и, следовательно,

newarray(0) = 1
newarray(1) = 1

Я не могу сделать это в коде 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

1 Ответ

7 голосов
/ 13 января 2012

Вы не можете назначить массив фиксированного размера. Объявите его как динамический.

Dim arraynew() As String
arraynew = array2(1) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...