У меня проблема с передачей 2D-массива между двумя пользовательскими формами.
Когда я нажимаю CommandButton в userform1
, он открывает userform2
.Затем я нажимаю CommandButton в userform2
для создания 2D-массива.После этого я завершаю userform2
и хочу перевести мой 2D-массив в userform1
.
Моя лучшая попытка - вызвать функцию в userform1
событии click.Я поместил эту функцию в модуль userform2
.Но моя userform2
функция не видит двумерный массив из других подпрограмм в userform2
.Private Sub userform_terminate()
может видеть этот 2D-массив, созданный в Private Sub CommandButton1_Click()
, но моя функция этого не делает.
userform1:
Private Sub CommandButton1_Click()
dim results()
results = userform2.get2dArray()
End Sub
userform2:
Private myArray()
Private Sub CommandButton1_Click()
ReDim myArray(1 To 2, 1 To 2)
myArray(1, 1) = "arg1"
myArray(2, 1) = "arg2"
myArray(1, 2) = "arg3"
myArray(2, 2) = "arg4"
End Sub
Private Sub userform_terminate()
'here i can see every args in myArray
...
end sub
Function get2dArray()
'that function I called from userform1
userform2.show vbModal
get2dArray = myArray 'but myArray is empty
End Function
Я хочу перевести myArray
из userform2
обратно в основную форму userform1
.
Основная проблема в том, что userform2.get2dArray
не видит приватную переменную myArray
в userform2
модуле.
Сделать глобальным myArray
также невозможно.