Macro para guardar una copia de un archivo con macros como libro normal en (.xlsx)

Hoy vengo con una situación que me ha dado varias molestias.

Tengo un archivo xlsm en cierta carpeta, el nombre del archivo esta definido ya que en una hoja tengo los datos de la ruta donde esta el archivo y el nombre.

Lo que quiero hacer es guardar una copia del archivo en la dirección dada en la macro (que a su vez toma los datos de la hoja "meses") pero con formato xlsx.

Pongo mi macro en caso que no se entienda:

Sub guardarcopia()
ActiveWorkbook.SaveCopyAs Filename:=[Meses!A2] & [Meses!i2] & ".xlsx", FileFormat:=xlOpenXMLWorkbook
End Sub

A la hora de ejecutar la macro me arroja el error "No se encontró el argumento con nombre" y me señala la parte de fileformat.

Si corro la macro sin el fileformat me dice que no se puede abrir el archivo porque el formato o la extensión no son validos.

1 respuesta

Respuesta
1

El método SaveCopyAs solamente tiene el argumento de Filename, porque te va a generar una copia del mismo libro con el mismo formato.

https://msdn.microsoft.com/en-us/vba/excel-vba/articles/workbook-savecopyas-method-excel 

Puedes emplear lo siguiente. Copia todas las hojas en un nuevo libro y lo guarda como xlsx con el nombre que necesitas.

Sub guardarcopia2()
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    ruta = ThisWorkbook.Path & "\"
    arch = [Meses!A2] & [Meses!i2] & ".xlsx"
    Sheets.Copy
    ActiveWorkbook.SaveAs Filename:=arch, FileFormat:=xlOpenXMLWorkbook
    ActiveWorkbook.Close
    MsgBox "Archivo copiado"
End Sub

.

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas