Just re-read that you only want certain columns, try this:
Public Sub FillListView()
Dim CompanyInfo As Variant
Dim column_header As ColumnHeader
Dim Astr As String
Dim Along As Long
Dim avar As ListItem
Dim v
With LvTest
.ListItems.Clear
For Each v In Sheets("sheet1").Range("A2,B2,N2,R2,Y2")
.ColumnHeaders.Add , , v.Value
Next v
.HideColumnHeaders = False
End With
Call GetInfoFromSomewhere(CompanyInfo)
With LvTest
.View = 3 'determines style of the listview
For i = LBound(CompanyInfo) To UBound(CompanyInfo)
Set avar = .ListItems.Add(i + 1, , CompanyInfo(i)(0))
For ii = LBound(CompanyInfo(i)) + 1 To 4
avar.SubItems(ii) = CompanyInfo(i)(ii)
Next ii
ii = 1
Next i
End With
End Sub
Public Sub GetInfoFromSomewhere(Optional ByRef CompanyInfo)
Const keyWord As String = "OPEN" 'Word to check
Const columnNo As Long = 25 'Column number to check
Dim columns: columns = Array(1, 2, 14, 18, 25)
Dim temp
Dim temp2()
Dim x As Long, y As Long
Dim colOpens As Object
With Sheets("Sheet1").Cells(1, 1).CurrentRegion
temp = .Offset(1).Resize(.Rows.Count - 1).Value
End With
Set colOpens = CreateObject("Scripting.dictionary")
ReDim temp2(0 To UBound(columns))
For x = LBound(temp) To UBound(temp)
If temp(x, columnNo) = keyWord Then
For y = LBound(temp2) To UBound(temp2)
temp2(y) = temp(x, columns(y))
Next y
colOpens(colOpens.Count) = temp2
End If
Next x
CompanyInfo = colOpens.items
End Sub
Bookmarks