Abrir dos ficheros Excel dede VB 6
Publicado por Kirou2 (2 intervenciones) el 23/03/2009 17:42:59
Tengo un programa que abre un fichero excel :
Inicialmente tengo declaradas las variables
Private obj1_Excel As Object
Private obj1_Workbook As Object
Private obj1_Worksheet As Object
' Luego abro common dialog
CommonDialog1.DialogTitle = "Seleccione una Factura Existente"
CommonDialog1.Filter = "Archivos Excel xls|*.xls"
CommonDialog1.ShowOpen
If CommonDialog1.FileName <> "" Then
FileToOpen = CommonDialog1.FileName
' Llama a una rutina para cargar la tabla con el rango a22 a d45
call Tomar_Datos_Excel(FileToOpen, Tabla, 0, 0, "a22", "d45", "Factura") Then
End If
End If
Set obj1_Excel = CreateObject("Excel.Application")
obj1_Excel.DisplayAlerts = False
obj1_Excel.Visible = True
Set obj1_Workbook = obj1_Excel.Workbooks.Open(sPath)
Set obj1_Worksheet = obj1_Workbook.Sheets(1)
obj1_Worksheet.Range(Smin, ActiveSheet.Range(Smax).End(xlDown)).Select
private Sub Tomar_Datos_Excel(FileToOpen as string , Tabla as object , 0, 0, Smin as string , Smax as string , "Factura")
Set obj1_Excel = CreateObject("Excel.Application")
obj1_Excel.DisplayAlerts = False
obj1_Excel.Visible = True
Set obj1_Workbook = obj1_Excel.Workbooks.Open(sPath)
Set obj1_Worksheet = obj1_Workbook.Sheets(1)
obj1_Worksheet.Range(Smin, ActiveSheet.Range(Smax).End(xlDown)).Select
FilasExistentes = Selection.Rows.Count
for L = 1 to FilasExistentes
for C = 1 to 4 ' quiero tomar los valores de 4 columnas
tabla(L,C) = obj1_Worksheet.Cells(L, k).Value
Next C
Next L
' Se decarga la aplicacion
obj1_Workbook.Close
' -- Cerrar Excel
obj1_Excel.Quit
Set obj1_Workbook = Nothing
Set obj1_Excel = Nothing
Set obj1_Worksheet = Nothing
'Con esto se cargan los datos en la tabla y los presento despues en un Flexgrid
Pero si desde el menu exixtente en el formulario vuelvo a intentar abrir de nuevo el archivo para volver a car la tabla me da un error 91 "Object variable or With block not set "
Agradeceria a alguien que me ayudara, para ver como se debe abrir un archivo Excel, cerrarlo, y si se desea abrirlo de nuevo, bien el mismo Name o bien otro Fichero Excel, como poder hacerlo
Gradias Kirou2
Inicialmente tengo declaradas las variables
Private obj1_Excel As Object
Private obj1_Workbook As Object
Private obj1_Worksheet As Object
' Luego abro common dialog
CommonDialog1.DialogTitle = "Seleccione una Factura Existente"
CommonDialog1.Filter = "Archivos Excel xls|*.xls"
CommonDialog1.ShowOpen
If CommonDialog1.FileName <> "" Then
FileToOpen = CommonDialog1.FileName
' Llama a una rutina para cargar la tabla con el rango a22 a d45
call Tomar_Datos_Excel(FileToOpen, Tabla, 0, 0, "a22", "d45", "Factura") Then
End If
End If
Set obj1_Excel = CreateObject("Excel.Application")
obj1_Excel.DisplayAlerts = False
obj1_Excel.Visible = True
Set obj1_Workbook = obj1_Excel.Workbooks.Open(sPath)
Set obj1_Worksheet = obj1_Workbook.Sheets(1)
obj1_Worksheet.Range(Smin, ActiveSheet.Range(Smax).End(xlDown)).Select
private Sub Tomar_Datos_Excel(FileToOpen as string , Tabla as object , 0, 0, Smin as string , Smax as string , "Factura")
Set obj1_Excel = CreateObject("Excel.Application")
obj1_Excel.DisplayAlerts = False
obj1_Excel.Visible = True
Set obj1_Workbook = obj1_Excel.Workbooks.Open(sPath)
Set obj1_Worksheet = obj1_Workbook.Sheets(1)
obj1_Worksheet.Range(Smin, ActiveSheet.Range(Smax).End(xlDown)).Select
FilasExistentes = Selection.Rows.Count
for L = 1 to FilasExistentes
for C = 1 to 4 ' quiero tomar los valores de 4 columnas
tabla(L,C) = obj1_Worksheet.Cells(L, k).Value
Next C
Next L
' Se decarga la aplicacion
obj1_Workbook.Close
' -- Cerrar Excel
obj1_Excel.Quit
Set obj1_Workbook = Nothing
Set obj1_Excel = Nothing
Set obj1_Worksheet = Nothing
'Con esto se cargan los datos en la tabla y los presento despues en un Flexgrid
Pero si desde el menu exixtente en el formulario vuelvo a intentar abrir de nuevo el archivo para volver a car la tabla me da un error 91 "Object variable or With block not set "
Agradeceria a alguien que me ayudara, para ver como se debe abrir un archivo Excel, cerrarlo, y si se desea abrirlo de nuevo, bien el mismo Name o bien otro Fichero Excel, como poder hacerlo
Gradias Kirou2
Valora esta pregunta


0