¿Alguien sabe macro para guardar en .XLSX?

Estoy diseñando una macro que copie mi libro (con macros) a un formato .xlsx con el objetivo que la nueva copia no contenga las macros. Pues bien, implementé esta macro

    Dim Copia As String  ' CREAMOS UNA COPIA DEL ARCHIVO PROGRAMA INFORME SIN FORMULAS
    NOMBRE1 = "INFORME 2-A No."
    NOMBRE2 = Hoja6.Range("V3")
    NOMBRE3 = Hoja6.Range("Y3")
    Copia = Left(ThisWorkbook.FullName, _
        Len(ThisWorkbook.FullName) - 29) & NOMBRE1 & NOMBRE2 & "-" & NOMBRE3 & ".xlsx"
         ActiveWorkbook.SaveCopyAs Copia
    Workbooks.Open Copia
                  With ActiveWorkbook
         For Each HOJA In .Sheets
            HOJA.UsedRange.Value = HOJA.UsedRange.Value
         Next
        .Save
      End With

El problema es que cuando intenta abrir el archivo dice "EXCEL NO PUEDE ABRIR EL ARCHIVO PORQUE EL FORMATO O LA EXTENSIÓN DE ÉSTE NO SON VALIDOS. Compruebe que el archivo no se ha dañado y que la extensión coincide con el formato del archivo.

¿Podrian ayudarme por favor a resolver este problema?

Como dato, la macro completa: crea archivo copia sin macros y sin formulas y edita las hojas, eliminando ciertos datos y escondiendo ciertas columnas para que pueda imprimirse. Ya intente el metodo .VBComponents.Remove pero como mi archivo es muy grande, tarda demaciado y de vez en cuando produce error, asi que estoy cambiando de metodo a guardar .xlsx.

Respuesta
1

Prueba con lo siguiente:

    Dim Copia As String  ' CREAMOS UNA COPIA DEL ARCHIVO PROGRAMA INFORME SIN FORMULAS
    NOMBRE1 = "INFORME 2-A No."
    NOMBRE2 = Hoja6.Range("V3")
    NOMBRE3 = Hoja6.Range("Y3")
    Copia = Left(ThisWorkbook.FullName, _
            Len(ThisWorkbook.FullName) - 29) & NOMBRE1 & NOMBRE2 & "-" & NOMBRE3 & ".xlsx"
            ActiveWorkbook.SaveCopyAs Copia
    ActiveWorkbook.SaveAs Filename:=Copia, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
    With ActiveWorkbook
         For Each HOJA In .Sheets
            HOJA.UsedRange.Value = HOJA.UsedRange.Value
         Next
        .Save
    End With

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas