Hola!!
Para exportar un listview a excel:
Código vb:
Ver original'LLAMADA
Exportar_Excel ListView1, "NombreHoja", "NombreArchivo"
'SUB RUTINA
Sub Exportar_Excel(lsvData As ListView, strNombreHoja As String, strNombreArchivo As String)
On Error GoTo SaveErr
Dim TMP
Dim I, J As Double
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Dim CellCnt As Double 'contar las celdas
Set xlApp = New Excel.Application 'asignar las referencias a las variables
Set xlBook = xlApp.Workbooks.Add
Set xlSheet = xlBook.Worksheets.Add
xlApp.ActiveSheet.PageSetup.CenterHorizontally = True
xlApp.ActiveSheet.PageSetup.LeftMargin = Application.InchesToPoints(0.22)
xlApp.ActiveSheet.PageSetup.RightMargin = Application.InchesToPoints(0.18)
xlApp.ActiveSheet.PageSetup.TopMargin = Application.InchesToPoints(0.34)
xlApp.ActiveSheet.PageSetup.BottomMargin = Application.InchesToPoints(0.34)
xlApp.ActiveSheet.PageSetup.Orientation = xlPortrait
xlApp.ActiveWindow.DisplayGridlines = False
I = 1 '"i" MARCA EL INICIO DE LOS DATOS DE LA TABLA
CellCnt = 1 'CONTEO DE COLUMNAS
TMP = lsvData.ColumnHeaders.Item(1) ' OBTENER EL HEADER ITEM DEL LISTVEW
For CellCnt = 1 To lsvData.ColumnHeaders.Count
xlSheet.Cells(I, CellCnt) = lsvData.ColumnHeaders(CellCnt).Text
xlSheet.Cells(I, CellCnt).Interior.ColorIndex = 33
xlSheet.Cells(I, CellCnt).Font.Bold = True
xlSheet.Cells(I, CellCnt).BorderAround xlContinuous
xlSheet.Cells(I, CellCnt).HorizontalAlignment = xlCenter
DoEvents
Next
I = 2 '"i" MARCA EL INICIO DE LOS DATOS DE LA TABLA
CellCnt = 1 'CONTEO DE COLUMNAS
For J = 1 To lsvData.ListItems.Count
TMP = lsvData.ListItems.Item(I - 1) ' OBTENER EL ITEM DEL LISTVEW
xlSheet.Cells(I, 1) = lsvData.ListItems(I - 1)
For CellCnt = 1 To lsvData.ColumnHeaders.Count - 1
xlSheet.Cells(I, CellCnt + 1) = lsvData.ListItems(I - 1).SubItems(CellCnt)
Next
DoEvents
I = I + 1
Next J
xlApp.Range("A5:I" & (lsvData.ListItems.Count + 2)).Sort Key1:=xlSheet.Range("A6"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
'Ajustar todas las columnas
For J = 1 To lsvData.ColumnHeaders.Count
xlSheet.Columns(J).AutoFit
Next J
'Salvar la hoja de excel
xlSheet.Name = strNombreHoja
xlSheet.SaveAs "C:\" & strNombreArchivo & " - " & Replace(DateValue(Date), "/", "-") & ".xls"
MsgBox "Consulta exportada a Excel!!", vbInformation
xlBook.Close
xlApp.Quit
Set xlApp = Nothing
Set xlBook = Nothing
Set xlSheet = Nothing
Exit Sub
SaveErr:
If Err.Number <> 32755 Then
MsgBox "Ocurrió un error!!" & vbNewLine & "[ " & Err.Description & " ]", vbExclamation
End If
End Sub