Exportar datos a Excel
Tengo el siguiente problema. El exportar datos desde uan datagrid a Excel, tengo una instrucción que funciona perfecto en Windows 2000 y Windows XP, sin embargo en Windows 98, al exportar, me arroja un mensaje de "Error de Automatización" y el programa se cae.
Dim ApExcel As New Excel.Application
Set ApExcel = CreateObject("Excel.Application")
ApExcel.Visible = True
ApExcel.Workbooks.Add
ApExcel.Cells(1, 5).Formula = "INFORME"
y acá es donde se cae y me arroja e error
Dim ApExcel As New Excel.Application
Set ApExcel = CreateObject("Excel.Application")
ApExcel.Visible = True
ApExcel.Workbooks.Add
ApExcel.Cells(1, 5).Formula = "INFORME"
y acá es donde se cae y me arroja e error
Hola,
¿cómo es la línea en la que abres la hoja de excel?
Saludos
sdemingo
¿cómo es la línea en la que abres la hoja de excel?
Saludos
sdemingo
La línea de código VB donde abres el documento, es decir, donde haces el Open
mmmmmmmm, puede que por ahí esté el problema. Hay que hacer algún open? Porque el código lo termino con Set AppExcel= Nothing.
Mira acá va el código que utilizo (obviamente resumí el código redundante de agregar los datos y eso). Supongamos que necesito agregar sólo un título a la hoja excel: el botón con el que exporto se llama cmdExportar
Private Sub cmdExportar_Click()
Dim ApExcel As New Excel.Application
Set ApExcel = CreateObject("Excel.Application")
' Hace que Excel se vea
ApExcel.Visible = True
' Agrega un nuevo Libro
ApExcel.Workbooks.Add
'Título principal
PrimeraFila = 2
ApExcel.Cells(PrimeraFila, 5).Formula = "INFORME"
Set ApExcel = Nothing
End Sub
La referencia a la librería es Excel 10.0 o 8.0 o 9.0dependiendo del Office, pero en eso no hay drama porque la reconoce automáticamente. el problema es que en Windows 98 se cae en la ínea que te mencioné.
Gracias por tus respuestas
Mira acá va el código que utilizo (obviamente resumí el código redundante de agregar los datos y eso). Supongamos que necesito agregar sólo un título a la hoja excel: el botón con el que exporto se llama cmdExportar
Private Sub cmdExportar_Click()
Dim ApExcel As New Excel.Application
Set ApExcel = CreateObject("Excel.Application")
' Hace que Excel se vea
ApExcel.Visible = True
' Agrega un nuevo Libro
ApExcel.Workbooks.Add
'Título principal
PrimeraFila = 2
ApExcel.Cells(PrimeraFila, 5).Formula = "INFORME"
Set ApExcel = Nothing
End Sub
La referencia a la librería es Excel 10.0 o 8.0 o 9.0dependiendo del Office, pero en eso no hay drama porque la reconoce automáticamente. el problema es que en Windows 98 se cae en la ínea que te mencioné.
Gracias por tus respuestas
Hola,
hombre, por depurar un poco te diré que si eñades la librería de excel y declaras el objeto así:
Dim ApExcel As New Excel.Application
no te haría falta hacer el createobject.
Yo te recomiendo que declares la la variable de tipo object.
Dim ApExcel as Object
y luego crees el objeto
Set ApExcel = CreateObject("Excel.Application")
Vale, eso por un lado.
No hace falta que hagas el Open porque directamente, cuando tienes la aplicación le añades un libro con Add.
Al final, supongo que guardarás el documento con algún nombre: APExcel.activeworkbook.Save
Y para finalizar, a parte de limpiar el objeto con Nothing, deberías hacer un quit de la aplciación, para que no te queden procesos colgados.
ApExcel.Quit (primeo se hace el quit y luego se limpia el objeto ApExcel)
En teoría, así no debería dar problemas, pero con ya se sabe con Microsoft.....
Suerte
hombre, por depurar un poco te diré que si eñades la librería de excel y declaras el objeto así:
Dim ApExcel As New Excel.Application
no te haría falta hacer el createobject.
Yo te recomiendo que declares la la variable de tipo object.
Dim ApExcel as Object
y luego crees el objeto
Set ApExcel = CreateObject("Excel.Application")
Vale, eso por un lado.
No hace falta que hagas el Open porque directamente, cuando tienes la aplicación le añades un libro con Add.
Al final, supongo que guardarás el documento con algún nombre: APExcel.activeworkbook.Save
Y para finalizar, a parte de limpiar el objeto con Nothing, deberías hacer un quit de la aplciación, para que no te queden procesos colgados.
ApExcel.Quit (primeo se hace el quit y luego se limpia el objeto ApExcel)
En teoría, así no debería dar problemas, pero con ya se sabe con Microsoft.....
Suerte
También lo hice así, tal como lo mencionas, declarando la variable como objeto y después como
Set ApExcel = CreateObject("Excel.Application")
Pero el problema esel mismo (en Windows 2000 y XP, pefecto, en 98 se cae), de hecho por eso intenté con New Excel.Application. Sobre el final del programa, eso de hacer el Quit voy a probar, porque el problema es que el error aparece al agregar la primera fila, donde están la instrucción
ApExcel.Cells(PrimeraFila, 5).Formula = "INFORME"
Ahí es donde me indica el debug de Visual Basic
Gracias por tu ayuda.
Set ApExcel = CreateObject("Excel.Application")
Pero el problema esel mismo (en Windows 2000 y XP, pefecto, en 98 se cae), de hecho por eso intenté con New Excel.Application. Sobre el final del programa, eso de hacer el Quit voy a probar, porque el problema es que el error aparece al agregar la primera fila, donde están la instrucción
ApExcel.Cells(PrimeraFila, 5).Formula = "INFORME"
Ahí es donde me indica el debug de Visual Basic
Gracias por tu ayuda.
No hay caso con el maldito Windows 98. No veo por sonde solucionar el problema.
mira quisera ver si me puede ayudar con esto no se como esportar datos desde visual basic a exel y veo que tu lo pudes hacer sera que me puede ayudar
