Я хочу прочитать значения столбца в книге Excel (начиная с cell(3, 1)
), используя Sub, который затем доставит массив в основную функцию, но значения, полученные внутри sub, не возвращаются в массив в основной функции.
В настоящее время у меня есть значения в Cells(3, 1)
и (4, 1)
, и я знаю, что Sub работает, потому что я помещаю в окно сообщения внутри Sub, и он читает оба значения.
Я попытался превратить Sub в функцию, изменив имя параметра Sub на то же имя, что и у массива в основной функции (tr_des), и много подобных вещей.
Option Explicit
Private Sub cmd_openform_Click() '"Main" function
Dim tr_des() As String
Call getDescriptions(tr_des)
uf_TestSelector.Show vbModal 'shows properly
MsgBox tr_des(1) 'shows empty MsgBox
End Sub
Sub getDescriptions(ByRef des_array() As String)
Dim descrip As String, size As Integer
Dim i As Integer
i = 0
size = 1
ReDim des_array(size)
Do While Cells(i + 3, 1).Value <> ""
des_array(i) = Cells(i + 3, 1).Value
MsgBox des_array(i) 'opens MsgBox with correct value both times
size = size + 1
ReDim des_array(size)
i = i + 1
Loop
End Sub
Я ожидал, что MsgBox tr_des(1)
вернет значение из столбца из таблицы Excel, но оно всегда возвращает пустой MsgBox