Hi White_Flag,
Try this example to populate ListView by test data of A1:C5 range and change the code to suit your task:
Private Sub UserForm_Activate()
Dim a(), r&, c&, rs&, cs&
With ListView1
' Do some common settings
.View = lvwReport
.Gridlines = True
.HideColumnHeaders = False
' Create the column headers
.ColumnHeaders.Add , , "Name", 50
.ColumnHeaders.Add , , "Density", 50
.ColumnHeaders.Add , , "Comment", 50
' Populate test range with 3 columns of data
With Range("A1:C5")
.Formula = "=COLUMN()& ""-""&ROW()"
a() = .Value ' <-- copy test data into array
End With
' Copy test data from a() to ListView1
rs = UBound(a, 1)
cs = UBound(a, 2)
For r = 1 To rs
With .ListItems.Add(, , a(r, 1))
For c = 2 To cs
.SubItems(c - 1) = a(r, c)
Next
End With
Next
End With
End Sub
Regards,
Vladimir