Problema al cerrar archivos por bucle

Hola Elsa esperando que te encuentres bien, te quería molestar un poco a ver si me puedes ayudar.
Estoy realizando el siguiente programa el cual tiene que abrir varios archivos extraer una columna y pegarla en este archivo, pero mi problema es que no puedo cerrar el archivo que abre por el bucle, me sale un error. O sea no se como se llama el archivo, ya que pensaba que el archivo pasaba a llamarse "ruta", pero no me resulta.
Este es el código:
Public Sub Ejemplo()
Dim objFSO As FileSystemObject, objFolder As Folder
Dim objFile As File, ruta As String
Set objFSO = New FileSystemObject
With Application.FileSearch
.LookIn = "C:\Pictogramas\"   'carpeta donde estan los archivos a abrir
.FileType = msoFileTypeExcelWorkbooks  ' Abre solo archivos excel
.SearchSubFolders = True  'Ver en subcarpetas
.Execute
For i = 1 To .FoundFiles.Count
Set objFile = objFSO.GetFile(.FoundFiles(i))
ruta = objFile.Path
Workbooks.Open Filename:=ruta 'Se supone que ruta es la direccion del archivo
Range("O2:O421").Copy
Workbooks("buscador pictogramas3.xls").Activate 'Libro en el cual pego las columnas
Sheets(3).Select
Range("C6").Select
Selection.PasteSpecial Paste:=xlPasteValues
With Application.Workbooks(ruta) 'Aqui esta mi error no se como llamar al archivo
.RunAutoMacros xlAutoClose
.Close SaveChanges:=False
End With
Next i
End With
End Sub
Ojala me puedas ayudar a ver que estoy haciendo mal.

1 Respuesta

Respuesta
1
La variable 'ruta' tiene la cadena completa no solo el nbre, entonces necesitas guardarlo en una variable, luego de abrirlo:
Workbooks.Open Filename... (ya la tenés)
libro2 = activeworkbook.name  'el libro abierto es el activo en este momento
Range("O2:O... (ya la tenés)
Y luego utilizás esta variable libro2 en lugar de ruta para cerrarlo:
With Application.Workbooks(libro2)
Saludos
Elsa
Para aprender macros a fondo no dejes de visitar
http://es.geocities.com/lacibelesdepunilla/manuales

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas