Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

367
Visualizações
El método VBA 'SaveAs' del objeto '_Workbook' falló, pero solo en una computadora

Entonces, tengo un programa escrito que funcionaba bien, agregué soporte adicional para otro archivo de datos que funciona bien en mi computadora, pero en una de las computadoras de mis compañeros de trabajo, el código sigue arrojando un error que se refiere al método de guardar como siendo la causa.

Otro hilo que encontré sugiere que un formato de fecha podría ser el problema, pero eso no parece tener sentido en este punto del procedimiento de guardado.

Guarda el archivo con el nombre correcto, incluso me pregunta si quiero reemplazar un archivo con el mismo nombre, luego de que se crea el archivo guardado es cuando el depurador arroja el error.

(Tampoco sucedió la primera vez que ejecuté el programa en su máquina, arrojó un error más abajo en el código y cuando volví a ejecutar con puntos de interrupción, comenzó a arrojar el error en la función de guardar que escribí)

Otro hilo mencionó que Active Workbook puede estar causando problemas y usar ThisWorkbook podría funcionar mejor, supongo que estoy confundido por qué funciona en mi máquina y no en la de ella. ¿Cuál sería el problema?

De todos modos, aquí está el bloque de código que arroja el error, ¡gracias de antemano por ayudar a todos!

ActiveWorkbook.SaveAs es la línea que arroja el error, y luego crea el archivo...

 Private Sub SaveAsNew(parseName As String, path As String) Dim sheetToCopy As String sheetToCopy = "Sheet1" Worksheets(sheetToCopy).Copy With ActiveWorkbook .SaveAs path & "\" & parseName & "StandardForm.xlsx" .Close savechanges:=False End With End Sub
about 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Exportar hoja de trabajo a nuevo libro de trabajo

  • Si ocurre un error, aparecerá un mensaje en la ventana Inmediato ( Ctrl + G ).
 Option Explicit Private Sub SaveAsNew(ByVal ParseName As String, ByVal DestPath As String) Const ProcName As String = "SaveAsNew" Dim Success As Boolean On Error GoTo ClearError ' enable error-trapping ' Source - copy a worksheet Const sName As String = "Sheet1" ' Destination - save a single-worksheet workbook Const dRightName As String = "StandardForm.xlsx" ' Determine the destination folder path. Dim dFolderPath As String: dFolderPath = DestPath If Right(dFolderPath, 1) <> "\" Then dFolderPath = dFolderPath & "\" ' Validate the existence of the destination folder path. If Len(Dir(dFolderPath)) = 0 Then MsgBox "The path '" & dFolderPath & "' doesn't exist.", vbCritical Exit Sub End If ' Reference the source workbook. Dim swb As Workbook: Set swb = ThisWorkbook ' workbook containing this code ' Attempt to reference the source worksheet. Dim sws As Worksheet On Error Resume Next ' defer error-trapping Set sws = swb.Worksheets(sName) On Error GoTo ClearError ' re-enable error-trapping ' Validate the existence of the source worksheet. If sws Is Nothing Then MsgBox "The worksheet '" & sName & "' doesn't exist.", vbCritical Exit Sub End If Application.ScreenUpdating = False ' Return a copy of the source worksheet in a new single-worksheet workbook. sws.Copy ' Reference this workbook, the destination workbook. Dim dwb As Workbook: Set dwb = Workbooks(Workbooks.Count) ' Write the destination file path to a variable Dim dFilePath As String: dFilePath = dFolderPath & ParseName & dRightName ' Save the destination workbook (file). Application.DisplayAlerts = False ' overwrite without confirmation dwb.SaveAs dFilePath, xlOpenXMLWorkbook Application.DisplayAlerts = True ' If you don't overwrite, when you press 'No' or 'Cancel', ' an error will occur. dwb.Close SaveChanges:=False ' it's already saved ' Validate the success. Success = True ProcExit: On Error Resume Next ' defer error-trapping (to avoid an endless loop) If Not Application.ScreenUpdating Then Application.ScreenUpdating = True ' Inform. If Success Then MsgBox "Worksheet exported.", vbInformation Else MsgBox "Something went wrong.", vbCritical End If On Error GoTo 0 ' disable error-trapping Exit Sub ClearError: Debug.Print "'" & ProcName & "' Run-time error '" _ & Err.Number & "':" & vbLf & " " & Err.Description Resume ProcExit End Sub
about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda