title: Multiple rows showing in listbox, but only one column from worksheet is displayed in listbox
body: <p>I have a userform that searches through information on a worksheet. It's supposed to display the rows matching the search criteria inside of a listbox named "lbSrchMatchingResults"; unfortunately, it only displays the first column of each matching row. My solution builds on code provided by CPearson (<a href="http://www.cpearson.com/excel/findall.aspx" rel="nofollow noreferrer">http://www.cpearson.com/excel/findall.aspx</a>) and Jon Acampora (<a href="http://www.excelcampus.com/tools/find-all-vba-form-for-excel/" rel="nofollow noreferrer">http://www.excelcampus.com/tools/find-all-vba-form-for-excel/</a>). The subroutine responsible for populating the listbox is listed below:</p>
  
  <pre><code>Private Sub FindAllMatches()
  'Find all matches on activesheet
  
  Dim SearchRange As Range
  Dim FindWhat As Variant
  Dim FoundCells As Range
  Dim FoundCell As Range
  Dim arrResults() As Variant
  Dim lFound As Long
  Dim lSearchCol As Long
  Dim lLastRow As Long
  Dim rw As Range, c As Long  '&lt;&lt;&lt;&lt; added
  
  'Do search if text in find box is longer than 1 character.
  If Len(FSearchAssets.tbSrchSearchString.Value) &gt; 1 Then
  
      Set SearchRange = ActiveSheet.UsedRange.Cells
  
      FindWhat = FSearchAssets.tbSrchSearchString.Value
      'Calls the FindAll function
      Set FoundCells = FindAll(SearchRange:=SearchRange, _
                              FindWhat:=FindWhat, _
                              LookIn:=xlValues, _
                              LookAt:=xlPart, _
                              SearchOrder:=xlByColumns, _
                              MatchCase:=False, _
                              BeginsWith:=vbNullString, _
                              EndsWith:=vbNullString, _
                              BeginEndCompare:=vbTextCompare)
      If FoundCells Is Nothing Then
          ReDim arrResults(1 To 1, 1 To 2)
          arrResults(1, 1) = "No Results"
      Else
          'Add results of FindAll to an array
          ReDim arrResults(1 To FoundCells.Count, 1 To 14)
          lFound = 1
          For Each FoundCell In FoundCells
  
              'add the matching value and address
              'arrResults(lFound, 1) = FoundCell.Value
              'arrResults(lFound, 2) = FoundCell.Address
  
              Set rw = FoundCell.EntireRow 'get the full row for the found cell
              'add the first 13 values from that row to the listbox
              For c = 1 To 13
                  'arrResults(lFound, 2 + c) = rw.Cells(c).Value
                  arrResults(lFound, c) = rw.Cells(c).Value
              Next c
  
              lFound = lFound + 1
          Next FoundCell
      End If
  
      'Populate the listbox with the array
      Me.lbSrchMatchingResults.List = arrResults
  Else
      Me.lbSrchMatchingResults.Clear
  End If
  End Sub
  </code></pre>