No funciona Workbooks(nombre).Activate en Microsoft 365

Tengo un trozo de código que no consigo que funcione en la versión nueva de Microsoft 365 y antes en Office 2013 funcionaba correctamente. En concreto, la macro no me cambia de un libro a otro. El trozo de código es este:

libro_actual = ActiveWorkbook.Name

ActiveWorkbook.SaveAs Filename:="C:\loquesea", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False

Workbooks(libro_actual).Activate
Workbooks("C:\loquesea").Close SaveChanges:=True

Es muy sencillo:

1.- Le da el nombre del libro abierto a la variable "libro_actual"

2.- Guarda el libro con otro nombre.

3.- Activa el libro anterior.

4.- Cierra el libro que había guardado con otro nombre.

Pues no funciona ahora. Me da un:

Error '9' en tiempo de ejecución.

Subíndice fuera del intervalo

¿Alguien tiene idea de cómo solucionar esto?

1 Respuesta

Respuesta
2

ActiveWorkbook.SaveAs Filename:="C:\loquesea", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False

Cuando ejecutas esa línea, el libro activo toma el nuevo nombre, es decir, solamente renombraste el libro activo. Entonces no tienes 2 libros abiertos, solamente tienes un libro abierto.

Cuanto quieres activar el libro con el nombre en la variable libro_actual, ya no está abierto, por eso te envía el error 9 (subíndice), es decir, el nombre de ese libro no está en el índice.

Ese error también me ocurre en la versión 2007, no es un problema de la versión.


Si lo que quieres es guardar el libro actual con otro nombre y con extensión "xlsx", entonces intenta lo siguiente:

Sub test()
  Dim libro_actual As String
  Dim sPath As String, sFile As String
  Dim wb As Workbook
  Application.DisplayAlerts = False
  Application.ScreenUpdating = False
  sPath = "C:\trabajo\"
  sFile = "loquesea"
  ActiveWorkbook.SaveCopyAs Filename:=sPath & sFile
  Set wb = Workbooks.Open(sPath & sFile)
  wb.SaveAs sPath & sFile & ".xlsx", FileFormat:=xlOpenXMLWorkbook
  wb.Close
End Sub

Muchas gracias Dante. Era eso lo que estaba pasando exactamente. No sé como no me daba cuenta de no tener dos archivos abiertos. Demasiadas horas delante de la pantalla y al final no ves nada.

Un saludo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas