通过 VBA 宏保存文件时,Excel 无法打开 .xlsx 文件

问题描述 投票:0回答:1

尝试打开使用 VBA 宏保存的 .xlsx 文件时收到错误。我收到一个消息框,显示“Excel 无法打开文件‘filename.xlsx’,因为文件格式或文件扩展名无效”。但如果我手动使用“另存为...”,它会正确打开。 另外,如果我通过 VBA 宏保存文件,但使用 .xls 格式,它也可以正确打开。

这是我尝试过的代码:

    Sub EMAIL()

    ActiveWorkbook.Save
    Dim Fecha As String
    Dim Ruta_archivo As String
    Dim Ruta As String
    Dim Nombre_archivo As String

    Fecha = Right$(Year(Date), 4) + Right$(100 + Month(Date), 2) + 
    Right$(100 + Day(Date), 2)
    Ruta = "path"
    Nombre_archivo = "filename"

    Ruta_archivo = Ruta + "\" + CStr(Year(Date)) + "\" + 
    MonthName(Month(Date), False) + "\" + Nombre_archivo + Fecha + ".xlsx"

    'Crear copia
    ActiveWorkbook.SaveCopyAs Filename:=Ruta_archivo
 
 

    End Sub

我希望文件能够正确打开。

excel vba xlsx
1个回答
0
投票

原始文件格式为.xlsm

这就是你的问题的原因。

您有一个 .xlsm 文件,您可以使用 .xlsx 扩展名保存该文件的副本。那是行不通的。您可以将文件名更改为以 .xlsm 结尾,或者通过先制作副本将其显式保存为 .xlsx 文件:

ActiveWorkbook.Sheets.Copy ' Creates a new workbook with a copy of all sheets
ActiveWorkbook.SaveAs FileName:=Ruta_archivo, FileFormat:=xlWorkbookDefault ' Saves it as .xlsx
© www.soinside.com 2019 - 2024. All rights reserved.