Ayuda para activar y cerrar libros abiertos

Quisiera saber si alguien me podría ayudar. Yo tengo un código que me permite abrir desde una macro otro libro excel (como al abrir un documento con windows), pero luego de abrir el documento quiero ordenar unos valores copiarlos y luego pegarlos en el libro donde esta la macro. La parte que no puedo hacer es al abrir el segundo documento no se como cambiar de un libro a otro. Uso la función activate pero no me funciona. Debo decir que las rutas de cada archivo puede cambiar cada vez. Alguien me podría ayudar con eso gracias. Este es el código que hasta ahora tengo:
Sub HORIZONTALSODA()
Dim Filter As String, Title As String
Dim FilterIndex As Integer
Dim Filename As Variant
'ActiveWorkbook.SaveAs Filename:=WB1, FileFormat:=xlsmWorkbookNormal
' Set Dialog Caption
Title = "Select a File to Open"
' Select Start Drive & Path
ChDrive ("I")
ChDir ("I:\")
With Application
    ' Set File Name to selected File
    Filename = .GetOpenFilename(Filter, FilterIndex, Title)
    ' Reset Start Drive/Path
    ChDrive (Left(.DefaultFilePath, 1))
    ChDir (.DefaultFilePath)
End With
' Exit on Cancel
If Filename = False Then
    MsgBox "No file was selected."
    Exit Sub
End If
' Open File
Workbooks.Open Filename
'
' Ordera_Copy_Data MacroHOR
'
'
    Columns("A:A").Select
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
        Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
    Range("A20").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
<span style="white-space: pre;"> </span>AQUI: quisiera activar de nuevo el primer libro excel (ya tengo otra macro para hacer lo que quiero con estos datos). Luego de copiarlos quisiera cerrar el libro2 de donde copie los datos y luego volver al libro original (donde esta la macro) y seguir trabajando 
    .......
    Range("E12").Select
    ActiveSheet. Paste

1 respuesta

Respuesta
2
Lo que tienes que hacer es rescatar los nombres de los libros que estas trabajando, cada uno en una variable string, algo así:
Dim Libro1 as string
Dim Libro2 as string
'desde el libro pricipal que abre los demás: rescatas su nombre
Libro1 = ActiveWorkbook.Name
'
'abres el segundo libro y también rescatas su nombre
Libro2 = ActiveWorkbook.Name
'etc etc etc
'
'para activar o cambiar a alguno de los libros:
Workbooks(Libro1).Activate
'

'
Workbooks(Libro2).Activate
'
'como sea!
Gracias esto ayudo y mucho a seguir adelante.
Me alegra, no olvides finalizar y puntuar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas