Tratando de salvar mi libro de trabajo como xlsx en algunos portátiles

Estoy tratando de guardar un libro de trabajo Macro (xlsm) como un archivo xlsx usando el método FileDialog. Funciona perfectamente en mi portátil, pero lanza un error cuando se usa en algunas de las computadoras de mi amigo. He probado todas las soluciones posibles que pude encontrar en Internet, pero es raro para mí cómo el código no funciona sólo en algunas computadoras.

El error es

Error de tiempo de ejecución 1004 - Método 'SaveAs' de objeto _workbook falló

Sub cleanTheSheet()
 
 Dim sh As Worksheet
 Dim book As Workbook
 Dim Fldr As String
 Dim fileName As String

 
 fileName = ThisWorkbook.Worksheets("Input").Range("B1")

'Please note - Worksheet "input" has the client name that is used as part of file name. The name is plain text without any special characters that could cause an issue. 

 Set book = ThisWorkbook
 
 Application.ScreenUpdating = False
 Application.DisplayAlerts = False
 
 With Application.FileDialog(4)
     .AllowMultiSelect = False
     If .Show <> -1 Then Exit Sub
     Fldr = .SelectedItems(1)
 End With
 
 book.Save

 book.SaveAs Fldr & "\" & fileName & "_Global Payroll Pricing_" & Format(Date, dd_mmm_yy) & ".xlsx", xlOpenXMLWorkbook

Pregunta hecha hace 3 años, 5 meses, 0 días - Por htmlhero


2 Respuestas:

  • El error que estás experimentando puede estar relacionado con la forma en que se está formateando la fecha en la línea donde se intenta guardar el archivo como xlsx. Parece que el formato de fecha utilizado podría estar causando el problema al no ser compatible con algunas configuraciones de fechas en algunas computadoras.

    Te recomendaría que modifiques la línea de código donde se realiza el formateo de la fecha de la siguiente manera:

    vba
    book.SaveAs Fldr & "\" & fileName & "_Global Payroll Pricing_" & Format(Date, "dd-mmm-yy") & ".xlsx", FileFormat:=51
    

    En esta modificación, se cambió Format(Date, dd_mmm_yy) a Format(Date, "dd-mmm-yy") para asegurar que la fecha se formatee correctamente en todas las computadoras.

    Además, se incluyó el parámetro FileFormat:=51 para especificar que se está guardando el archivo en el formato xlsx.

    Por favor, inténtalo con esta modificación en el código y verifica si el problema persiste en las computadoras de tus amigos.

    Respondida el Dec 18, 2020 a las 16:26 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • El error "Error en tiempo de ejecución 1004: método 'SaveAs' del objeto '_workbook' ha fallado" generalmente ocurre cuando hay un problema al guardar el libro de trabajo como un archivo .xlsx. Aquí hay algunas posibles soluciones:

    • Verificar permisos: Asegúrate de que el usuario que ejecuta el código tenga los permisos necesarios para guardar archivos en la ubicación especificada por `Fldr`.
    • Comprobar el nombre del archivo: Verifica si el nombre del archivo especificado en `fileName` es válido y no contiene caracteres especiales o espacios que puedan causar problemas.
    • Verificar la ruta del archivo: Asegúrate de que la ruta especificada por `Fldr` sea válida y que el archivo no esté siendo guardado en una ubicación de solo lectura.
    • Comprobar si el archivo está abierto: Cierra cualquier otra instancia del libro de trabajo que pueda estar abierta y que esté interfiriendo con el guardado.
    • Deshabilitar el complemento incompatible: Si hay algún complemento o complemento de terceros instalado, intenta deshabilitarlos temporalmente para ver si alguno de ellos está causando el problema.
    • Restablecer la configuración de Excel: Intenta restablecer la configuración de Excel a los valores predeterminados yendo a `Archivo` > `Opciones` > `Avanzado` > `Restablecer`.
    • Actualizar Excel: Asegúrate de que estás utilizando la última versión de Excel.
    • Usar un formato de archivo diferente: Si todo lo demás falla, intenta guardar el libro de trabajo en un formato de archivo diferente, como .xlsb (libro binario de Excel).

    Si has intentado todas las soluciones anteriores y el problema persiste, es posible que haya un problema más grave con la instalación de Excel en las otras máquinas. En este caso, puede ser necesario reinstalar Excel o ponerse en contacto con el soporte técnico de Microsoft.

    Respondida el Dec 18, 2020 a las 16:30 - por Gemini

    Votos positivos: 0 | Votos negativos: 0