Вам необходимо присвоить некоторый размер массиву вариантов.
Function getNames()
Dim wbThis As Workbook, i As Long
Set wbThis = ThisWorkbook
redim arr(1 to 50) As Variant
For i = lbound(arr) To ubound(arr)
arr(i) = wbThis.Sheets("Sheet1").Cells(6, i).Value
Next i
For i = lbound(arr) To ubound(arr)
MsgBox "employee names are***** ." & arr(i)
Next i
End Function
ReDim
может использоваться без Dim
в первую очередь.От LBound
до UBound
- более универсальный метод циклического прохождения статического массива от нижней границы до верхней границы.Амперсанд &
является предпочтительным оператором для конкатенации строк.
Функции предназначены для возврата значения.Это может быть лучше, чем процедура sub
.
Вы можете 'заполнить' массив, вызвав функцию из подпрограммы.
sub main()
dim i as long, nms as variant
nms = getNames()
For i = lbound(nms) To ubound(nms)
MsgBox "employee names are***** ." & nms(i)
Next i
end sub
Function getNames()
Dim wbThis As Workbook, i As Long
Set wbThis = ThisWorkbook
redim arr(1 to 50) As Variant
For i = lbound(arr) To ubound(arr)
arr(i) = wbThis.Sheets("Sheet1").Cells(6, i).Value
Next i
getnames = arr
End Function