Open

Desde VB 6.0 como hago de forma sencilla para abrir Excel y un libro específico de excel, ¿el cuál conozco el path?
Puede resultar muy obvio, es que estoy empezando.
Como en oportunidades anteriores, agradezco la velocidad y categoría de las respuestas.

1 respuesta

Respuesta
1
La forma sencilla es:
Verifico que exista el archivo
Si existe creo una instancia de el
Realizo las operaciones que quiera con el archivo
Guardo, cierro y libero la memoria
'Verifico que exista el archivo
If Len(Dir(App.Path & "\Temporal.xls")) > 0 Then
'Creo una instancia del archivo de Excel
Set objArchivoXls = GetObject(App.Path & "\Temporal.xls")
'Realizo todas las operaciones que quiera, aqui lo hago con la hoja activa
'pero por supuesto puede ser con cualquier otra existente
With objArchivoXls.ActiveSheet
'Codigo para modificar la(s) hoja(s)
End With
'Guardamos y cerramos el archivo
objArchivoXls.Save
objArchivoXls.Close
'Liberamos la memoria
Set objArchivoXls = Nothing
Un ejemplo completo seria...
Private Sub cmdAExcel_Click()
Dim objArchivoXls As Object
Dim co1 As Integer
Dim intUltimo As Long
'Estas constantes son las usadas por Excel
Const xlDown As Integer = -4121
'Verifico que exista el archivo
If Len(Dir(App.Path & "\Temporal.xls")) > 0 Then
'Creo una instancia del archivo de Excel
Set objArchivoXls = GetObject(App.Path & "\Temporal.xls")
'objArchivoXls.Visible = True
With objArchivoXls.ActiveSheet
'Muestro el libro, por si esta oculta
.Parent.Windows("Temporal.xls").Visible = True
'Encontramos la ultima fila de mis datos
intUltimo = .Range("A1").End(xlDown).Row + 1
'Vaciamos algunos datos aleatorios de ejemplo
For co1 = intUltimo To intUltimo + 10
.Cells(co1, 1).Value = Int(Rnd() * 100 + 1)
.Cells(co1, 2).Value = Chr(Int(Rnd() * 25 + 65))
.Cells(co1, 3).Value = Int(Rnd() * 10 + 1)
.Cells(co1, 4).Value = Chr(Int(Rnd() * 25 + 65))
.Cells(co1, 5).Value = Int(Rnd() * 3 + 1)
.Cells(co1, 6).Value = Int(Rnd() * 50 + 1)
.Cells(co1, 7).Value = CDate(Int(Rnd() * 366 + 36570))
.Cells(co1, 8).Value = Chr(Int(Rnd() * 25 + 65))
Next co1
'Autoajuste de columnas
.Columns("A:H").EntireColumn.AutoFit
End With
'Guardamos el archivo
objArchivoXls.Save 'App.Path & "\Temporal.xls"
'Liberamos la memoria
Set objArchivoXls = Nothing
MsgBox "Proceso terminado"
Else
MsgBox "Archivo no existe"
End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas