Как "отобразить" данные одномерного массива с помощью функции MsgBox (не используя цикл)?

code: #vba
iFamily = Array("Иванов", "Петров", "Сидоров")
 
MsgBox Join(iFamily, vbLf), , ""
code: #vba
Dim iFamily$(1 To 3) 'iFamily(1 To 3) As String

iFamily(1) = "Иванов"
iFamily(2) = "Петров"
iFamily(3) = "Сидоров"
 
MsgBox Join(iFamily, vbCr), , ""

Если же речь идёт о данных столбца многомерного массива, то в таком случае можно объединить вышеприведённый пример, т.е. :

code: #vba
Dim iMassiv(1 To 10, 1 To 5)
 
'Здесь идёт заполнение массива некими данными

MsgBox Join(Application.Transpose( _
Application.Index(iMassiv, 0, 1)), vbNewLine), , "Первый столбец :"
 
'или так

With Application
     MsgBox Join(.Transpose(.Index(iMassiv, 0, 3)), _
     Chr(10)), , "Третий столбец :"
End With
 
With WorksheetFunction
     MsgBox Join(.Transpose(.Index(iMassiv, 0, 5)), _
     Chr(13)), , "Пятый столбец :"
End With

Почти тоже самое, но применительно к данным ячейкам активного рабочего листа, может выглядить так:

code: #vba
MsgBox Join(Application.Transpose(Range("A1:A10").Value), vbLf)
 
MsgBox Join([Transpose(A1:A10)], vbCr)

Актуально только для MS Excel 2000, XP

Поделиться:

Похожие статьи: