Programación General > Visual Basic 6.0 e inferiores
Error Al Exportar De Una Grilla Al Excel
(1/1)
desarrollo:
HOLA GENTE, :lol:
COMO ESTAN AKI NUEVAMENTE PARA UNA NUEVA CONSULTA, resulta que kise migrar datos a excel por medio de un GRID y buscando encontre un codigo por la web.. este es :
--- Código: Text --- Option Explicit Public Enum eTGrilla [DataGrid] = 1 [MSHFlexGrid] = 2 [MSFlexGrid] = 3End Enum Public Function mFn_GrillaToXls(ObjGrilla As Object, _ TipoGRilla As eTGrilla, _ Optional IniFillGrilla As Long = -1, _ Optional IniColGrilla As Long = -1, _ Optional FinFillGrilla As Long = -1, _ Optional FinColGrilla As Long = -1, _ Optional IniFillXls As Long = 1, _ Optional FinColXls As Long = 1, _ Optional FullPathNameFileXLS As String = "Archivo.xls", _ Optional NameSheet As String = "Hoja") As Boolean'***********************************************************************************'* Funcion que Migra de Una grilla a un archivo de Excel'*********************************************************************************** ' variables Excel Dim xlsApli As Excel.Application Dim xlsWorkB As Excel.Workbook Dim xlsSheet As Excel.Worksheet 'Variables Locales Dim Columna As Long Dim Fila As Long 'Fin de Variables Set xlsApli = New Excel.Application Set xlsApli = CreateObject("Excel.Application") Set xlsWorkB = xlsApli.Workbooks.Add Set xlsSheet = xlsWorkB.Worksheets.Add If FullPathNameFileXLS = "Archivo.xls" Then FullPathNameFileXLS = App.Path & "\" & FullPathNameFileXLS xlsSheet.Name = NameSheet mFn_GrillaToXls = False On Local Error GoTo GrillaToXlsError For Fila = IIf(InicioFila = -1, ObjGrilla.FixedRows - 1, InicioFila) To IIf(FinalFila = -1, ObjGrilla.FixedRows - 1, FinalFila) For Columna = IIf(InicioColumna = -1, ObjGrilla.FixedCols - 1, InicioColumna) To IIf(FinalColumna = -1, ObjGrilla.FixedCols - 1, FinalColumna) Select Case eTGrilla Case MSHFlexGrid Or MSFlexGrid xlsSheet.Cells(IniFillXls, FinColXls) = ObjGrilla.TextMatrix(Fila, Columna) Case DataGrid ObjGrilla.Col = Columna ObjGrilla.Row = Fila xlsSheet.Cells(IniFillXls, FinColXls) = ObjGrilla.Text End Select FinColXls = FinColXls + 1 Next Fila IniFillXls = IniFillXls + 1 Next Fila xlsWorkB.SaveAs FullPathNameFileXLS xlsWorkB.Close xlsApli.Quit mFn_GrillaToXls = True Exit FunctionGrillaToXlsError: MsgBox Err.Number & " : " & Err.Description End Function ... lo kise utilizar pero me sale un error al momento de llamar a la funcion en la parte donde dice variables de EXCEL el programa me indica que no estan declaradas por ejemplo (Excel.Application, Excel.Workbook, Excel.Worksheet) por lo que no puedo ejecutarlo la pregunta seria como declararia esas variable que utilizare para vincular con EXCEL y ademas es necesario color el OPTION EXPLICiT como dice al principio y por ultimo cuando llamo a la funciona es necesario detallar las condiciones opcionales como dice la funcion (call mFn_GrillaToXls(DATAGRID1, TipoGRilla [me da a escoger],opcional1, opcional2,etc..)
Disculpen las molestias pero necesito saberlo para poder exportar datos de un Grid (en este caso) al Excel de antemano mil gracias por la ayuda brindada :hola:
desarrollo :comp:
PD:muy a parte del comentario anterior existe otra manera de poder exportar al excel mayor cantidad de datos ya no con GRid (o referenciales) sino por medio de base me refiero desde SQl (ke es mi caso..) gracias y FELIZ AÑO NUEVO !!!
Brroz:
Hola Desarrollo.
Te falta una referencia a la biblioteca de objetos de Excel, pero puedes hacer una cosa en vez de añadirla:
Puedes instanciar las clases de excel mediante 'CreateObject', obviando el Set variable = New clase. Es decir: declara esas variables como Object y elimina la línea Set xlsApli = New Excel.Application, que además en el código es redundante. Con esto ya no te debería dar ese error.
Suerte.
desarrollo:
Hola BRROZ... :hola:
mas o menos lo que tu me dices es asi:
Dim xlsApli As Object ó
Create xlsApli As Object (esta me da error)
podrias orientarme por favor... ya se en donde puedo colocar las referencias pero kiero de la manera que tu me dices
gracias
desarrollo :comp:
Brroz:
Hola.
Cambia esto
--- Código: Text --- ' variables Excel Dim xlsApli As Excel.Application Dim xlsWorkB As Excel.Workbook Dim xlsSheet As Excel.Worksheet
por esto
--- Código: Text --- ' variables Excel Dim xlsApli As Object Dim xlsWorkB As Object Dim xlsSheet As Object
Cambia también esto
--- Código: Text --- Set xlsApli = New Excel.Application Set xlsApli = CreateObject("Excel.Application") Set xlsWorkB = xlsApli.Workbooks.Add Set xlsSheet = xlsWorkB.Worksheets.Add
por esto otro
--- Código: Text --- Set xlsApli = CreateObject("Excel.Application") Set xlsWorkB = xlsApli.Workbooks.Add Set xlsSheet = xlsWorkB.Worksheets.Add
Chao.
Navegación
Ir a la versión completa