es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Guardar un archivo de Word utilizando el valor de la celda como nombre de archivo.

Tengo un documento de Word que nos permite combinar información de una base de datos en línea. Estoy tratando de crear una macro que tome el valor de una celda específica de una tabla y lo use para guardar el archivo en un directorio específico.

No tengo mucha experiencia con VBA, pero he intentado usar y modificar el código de otros recursos, como aquí.

Encontré código que me permite seleccionar la celda correcta y logré hacerlo funcionar.

También encontré otro código para guardar el archivo e intenté modificarlo para incluir el valor de la celda como nombre de archivo.

Sub GuardarComoContenidoCelda()

Dim Invoice As String
Dim Directorio As String

Invoice = ActiveDocument.Tables(1).Cell(2, 5).Range.Text
Invoice = Left(Invoice, Len(Invoice) - 2)

Directorio = "D:\Dropbox (DRYBSMT)\~ DB Forms\Word Saves\"

ActiveDocument.SaveAs Filename:=Directorio & Invoice & "i.docx", fileformat:=wdFormatXMLDocument

End Sub

Como está escrito ahora, obtengo un error “Error de compilación: Tipo de datos no coincidente”.

He pasado horas intentando resolver esto y creo que es hora de solicitar ayuda de un experto.

Lo que tengo ahora y que está funcionando:

Sub GuardarComoContenidoCelda()

Dim Invoice As String
Dim Directorio As String

Invoice = ActiveDocument.Tables(1).Cell(2, 5).Range.Text
Invoice = Left(Invoice, Len(Invoice) - 2)

Directorio = "D:\Dropbox (DRYBSMT)\~ DB Forms\Word Saves\"

ActiveDocument.SaveAs Filename:=Directorio & Invoice & "i.docx", fileformat:=wdFormatXMLDocument

End Sub

Pero me han dicho que necesito agregar Debug.Print. Ahí es donde estoy ahora.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para agregar Debug.Print a tu macro, puedes usarlo para imprimir los valores de tus variables con fines de depuración. Aquí tienes un ejemplo de cómo puedes modificar tu código para incluir Debug.Print:

    Sub SaveAsCellContent()
    
        Dim Invoice As String
        Dim Directory As String
    
        Invoice = ActiveDocument.Tables(1).Cell(2, 5).Range.Text
        Invoice = Left(Invoice, Len(Invoice) - 2)
    
        Debug.Print "Número de factura: " & Invoice
    
        Directory = "D:\Dropbox (DRYBSMT)\~ DB Forms\Word Saves\"
    
        Debug.Print "Directorio: " & Directory
    
        ActiveDocument.SaveAs Filename:=Directory & Invoice & "i.docx", fileformat:=wdFormatXMLDocument
    
    End Sub
    

    Una vez que hayas agregado las declaraciones Debug.Print, puedes presionar Ctrl+G para abrir la ventana Inmediato en el Editor de VBA, la cual te mostrará los valores de tus variables mientras se ejecuta tu macro. Esto puede ayudarte a diagnosticar cualquier problema que surja con tu código.

Comments are closed.