Exportar datos a una hoja Excel

Tengo una aplicación en visual basic, que me devuelve unos datos en un grid. Ahora me han pedido que los mismos datos que me salen en el grid, los pueda exportar a una hoja excel. ¿Cómo se haría? No tengo ni idea :-(.
1

1 Respuesta

53.075 pts. Amplios conocimientos y experiencia en Visual Basic,...
Dim XL As Object
Dim WS As Object
Dim WK As Object
Set XL = CreateObject("Excel.Application")
'Podemos crear un nuevo archivo
Set WK = XL.Workbooks.Add
WK.SaveAs Fichero
'O abrir uno ya existente
Set WK = XL.Workbooks.Open(Fichero, 0, False, , , , True)
WK.Saved = True
'Dentro del "libro" excel podemos crear una hoja nueva
Set WS = WK.Worksheets.Add(, WK.Worksheets(WK.Worksheets.Count))
'O abrir una ya existente
Set WS = WK.Worksheets(Nombre)
'Para introducir datos en las celdas recorre el Grid
Dim iRow As Integer
Dim iCol As Integer
For iRow = 0 To Grid.Rows-1
For iCol = 0 To Grid.Cols - 1
WS.Cells(iRow, iCol) = Grid.TextMatrix(iRow, iCol)
Next iCol
Next iRow
'Y cerramos todo
Set WS = Nothing
WK.Sabe
WK.Close
Set WK = Nothing
XL.Quit
Set XL = Nothing
Buenos días. Muchas gracias por su ayuda. Me has sacado de un apurillo. Una ultima pregunta que le quería hacer. No se si lo estaré haciendo mal. En la parte del código que me ha puesto :
'Para introducir datos en las celdas recorre el Grid
Dim iRow As Integer
Dim iCol As Integer
For iRow = 0 To GRD_DATOS.Rows - 1
For iCol = 0 To GRD_DATOS.Cols - 1
WS.Cells(iRow, iCol) = GRD_DATOS.TextMatrix(iRow, iCol)
Next iCol
Next iRow
Me da un error que dice: Error 1004. Error definido por la aplicación o el objeto.
Me crea el archivo y todo, pero a la hora de recorrer las filas del grid hacia access me da ese error. ¿Sabe qué es lo que puede estar pasando? Muchas gracias de nuevo por su ayuda.
P.D: GRD_DATOS - Es el nombre de mi grid.
Prueba esto:
- Lo más seguro es que en excel no se empiece a contar desde 0, así que substituye la linea por
WS.Cells(iRow+1, iCol+1) = Grid.TextMatrix(iRow, iCol)
- Si quieres quitar los mensajes de error de excel pon XL.Application.DisplayAlerts = False

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas