If you declare a public Variable in a normal module.
Public dataRRay as Variant
This code in the userform's code module will fill it with the values, based on what you select from the list box.
Private Sub ListBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim i As Integer, rowNum As Long
Dim selectedCount As Integer
ReDim dataRRay(1 To 20, 1 To 5)
With Me.ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
selectedCount = selectedCount + 1
For rowNum = 1 To 20
dataRRay(rowNum, selectedCount) = ThisWorkbook.Sheets(1).Cells(rowNum, selectedCount)
Next rowNum
End If
Next i
End With
If selectedCount > 0 Then ReDim Preserve dataRRay(1 To 20, 1 To selectedCount)
End Sub
Private Sub UserForm_Initialize()
Dim i As Integer
With Me.ListBox1
For i = 1 To 4
.AddItem ThisWorkbook.Sheets(1).Cells(1, i).Value
Next i
End With
End Sub
If no items are selected from the list box, then Ubound(dataRRay,2) = 5,
otherwise UBound(dataRRay,2) = the number of items chosen from the list box.