Cerrar fichero con vba

Tengo una macro que me abre varios ficheros, pero quiero que la misma macro me los cierre utilizando unas variables que contienen el nombre y la ruta de los ficheros abiertos.
Respuesta
-1
Si, eventualmente, hubiera entendido correctamente tu pregunta, a continuación detallo una rutina para el cierre de archivos.
Desde luego, tal macro debe estar en un archivo que NO se cierre o ser la última instrucción del último archivo a cerrar.
Sub CierraArchs()
'Tus variables
Arch1 = "Rafabad.xls"
Arch2 = "0DIR.xls"
Arch3 = "PIRULO.xls"
'Cierres de archivos
Workbooks(Arch1). Close True 'Graba los cambios que hubiera en el archivo
Workbooks(Arch2). Close False 'NO graba los cambios que hubiera en el archivo
Workbooks(Arch3). Close 'Consultará si quiere grabar los cambios habidos en el archivo
End Sub
Notarás que las variables que contienen los nombre de los archivos a cerrar NO incluyen la ruta. Obviamente, sólo se puede cerrar los archivos abirtos, por lo que la ubicación no es necesaria.
En el ejemplo, muestro tres modalidades de cierre, relacionadas con el comportamiento que deberá tener respecto a los cambios en tales archivos.
Espero que eso sea lo que necesitas. Caso contrario, pregúntame de nuevo.
Un abrazo!
Fernando
Esas son las instrucciones que estaba utilizando, pero no me funcionan, y debe de ser porque incluye la ruta junto al nombre del fichero, el tema estaría en tomar de la variable sólo el nombre del fichero.
Como te mencionaba, el dato de la ruta no es necesario para cerrar los archivos ya que estos se encuentran cargados en memoria.
Nota que en el ejemplo excluí, apropósitamente, las rutas de tales archivos.
Espero haberte ayudado a resolver el problema. En tal caso -por favor- finaliza esta
Consulta.

1 respuesta más de otro experto

Respuesta
1
Como estas Rafabad, no me queda claro si quieres cerrar los libros con alguna opción especial o sólo salvarlos y cerrarlos... me cuentas para resolver el asunto.
De hecho entre mis respuestas hay una macro que guarda un libro en una carpeta nueva de acuerdo al valor de una celda específica.
Me cuentas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas