Programación General > Visual Basic 6.0 e inferiores
Cerrar Excel
Jeremy:
Hola amig@s. Tengo un problemilla, el cual no logro resolver, espero que vosotros podáis ayudarme:
Desde mi aplicación en VB hago una exportación de datos a Excel. La primera vez lo hace bien. Pero la segunda exportación que hago el Excel se queda bloqueado, en este caso lo que tengo que hacer para que a partir de la segunda exportación el Excel ya no de problemas es terminar el proceso excel.exe que se encuentra cargado en memoria. Esto lo hago "manualmente" desde el Administrador de procesos.
Cómo hago para desde el código de exportación, terminar el excel.exe? He probado con los consejos de alguno de vosotros, pero no da resultado. Este es el código con el que hago la exportación a Excel.
--- Código: Text --- Private Sub mnuexp_Click()Dim i As LongDim n As Long lblinf.Visible = Truelblinf.Caption = "Se están exportando " & lstlib.ListItems.Count & " registros. Esta operación puede tardar unos minutos, por favor espere..."pgbar.Visible = True Screen.MousePointer = vbHourglassOn Error Resume NextSet objExcel = GetObject(, "Excel.Application")If Err.Number Then Err.Clear Set objExcel = CreateObject("Excel.Application") If Err.Number Then MsgBox "No se pudo abrir Excel" End IfEnd If Set objWorkbook = objExcel.Workbooks.Add For i = 0 To lstlib.ListItems.Count objWorkbook.ActiveSheet.Cells(i, 1).Value = lstlib.ListItems(i).Text pgbar.Value = i * 100 / lstlib.ListItems.Count For n = 0 To lstlib.ColumnHeaders.Count lstlib.ColumnHeaders.Count = n objWorkbook.ActiveSheet.Cells(i, n + 1).Value = lstlib.ListItems(i).ListSubItems(n).Text Next nNext i Range("C1:C" & i).SelectSelection.NumberFormat = "#,##0.000 "Range("A1").Activatepgbar.Value = 0pgbar.Visible = Falselblinf.Visible = FalseScreen.MousePointer = Defaultlblean.Caption = "Artículo " & lstlib.ListItems(lstlib.SelectedItem.Index).Textstbbar.Panels(1).Text = "Familia: " + lstfamilias.ListItems(lstfamilias.SelectedItem.Index).ListSubItems(1) + " " + "Subfamilia: " + lstsub.ListItems(lstsub.SelectedItem.Index).ListSubItems(1) + "" _+ " " + "Artículo: " + lstlib.ListItems(lstlib.SelectedItem.Index)objExcel.Visible = True Set objExcel = Nothing 'Con esto desvinculo el Excel de VB; en teoría... objExcel.Application.Quit 'Con esto intento cerrar el Excel End Sub
A pesar de intentar desvincularlo
--- Citar ---Set objExcel=Nothing
--- Fin de la cita ---
y de cerrarlo
--- Citar ---objExcel.Application.Quit
--- Fin de la cita ---
no funciona.
Espero que me puedan ayudar, muchas gracias.
Jeremy º¿º
sujey_sanchez:
Jeremy, yo hago lo mismo en una aplicacion, la unica diferencia q veo es que tu tienes:
Set objExcel = GetObject(, "Excel.Application")
Y yo tengo:
Set objExcel = New Excel.Application
De resto tenemos las misma sentencias, aunq no uso el Quit al final solo el Set objExcel = Nothing .
cambia solo esa linea haber que tal... :P :D
Larrea:
Hola,
Yo si utilizo Excel.application y con la diferencia de que creo el libro con
Workbooks.Add
Dim ApExcel As Object 'Abrir excel
Set ApExcel = CreateObject("Excel.application") 'Crear el objeto
ApExcel.Workbooks.Add ' Añadir nuevo libro
ApExcel.Visible = True ' True muestra la aplicación y False la oculta
'
ApExcel.Cells(1, 1).Formula = "texto de prueba"
ApExcel.range("A1", "G1").MergeCells = True
ApExcel.Cells(1, 1).Font.Bold = True
ApExcel.Cells(1, 1).Font.Size = 12
ApExcel.Cells(2, 1).Formula = "Texto d eprueba"
ApExcel.range("A2", "G2").MergeCells = True
'
ApExcel.Application.Quit ' Cerrar Excel con el método Abandonar en el objeto de la aplicación.
Set ApExcel = Nothing ' Liberar la variable de objeto.
Saludos
nostromo:
Hola;
Para no tener problemas:
--- Código: Text --- Dim xlsApp As Variant Set xlsApp = CreateObject("Excel.application")
Terminando con :
Set ApExcel = Nothing
Y sin olvidar:
--- Código: Text --- Private Sub Form_Unload(Cancel As Integer) Set xlsApp = NothingEnd Sub
Nos vemos.
Jeremy:
Gracias a todos por vuestras sugerencias y ayudas.... Aunq
Navegación
[#] Página Siguiente
Ir a la versión completa