Exportando datos específicos de Excel desde múltiples campos a Word
Permítanme comenzar diciendo que soy muy nuevo en VBA, por lo que cualquier ayuda es apreciada.
Alguien se acercó a mí para ver si puedo crear un nivel básico de automatización.
La necesidad es exportar datos de Excel a Word al presionar un botón.
El objetivo final es tener campos de datos dentro de Excel como “Nombre”, “Apellido”, “Dirección” y “Número de contacto”. Luego, seleccionar una fila completa de una persona (B1, B2, B3, B4) y cuando se presione el botón de Macro, se abrirá un documento de Word y completará automáticamente los campos en el documento. Se trata de completar cartas para enviarlas, esta persona también ha indicado que la combinación de correspondencia no hace lo que necesitan. A continuación se muestra con lo que estoy trabajando.
Sub ExcelToWord()
Dim wordApp As Word.Application
Dim mydoc As Word.Document
Set wordApp = New Word.Application
wordApp.Visible = True
Set mydoc = wordApp.Documents.Add()
ThisWorkbook.Worksheets("sheet1").Range("").Copy
mydoc.Paragraphs(1).Range.PasteExcelTable _
LinkedToExcel:=False, _
WordFormatting:=False, _
RTF:=False
mydoc.SaveAs2 "MyDoc"
End Sub
Esto permite especificar un rango específico como (A2, B3), sin embargo, no el área “Seleccionada”.
Lamento si esto es muy básico, pero como dije, no uso mucho VBA.
davy.ai
Para exportar datos de Excel a Word con un solo botón y completar previamente los campos de datos dentro del documento de Word usando VBA, el código se puede modificar de la siguiente manera:
Este código selecciona la fila completa de la celda activa, obtiene los valores de las celdas seleccionadas y los completa en campos de entrada de texto en el documento de Word usando el bloque
With mydoc.Content
. La propiedadSelected
se utiliza para seleccionar la fila completa y la propiedadCells
se utiliza para obtener los valores de las celdas seleccionadas. El métodoControls.Add
se utiliza para agregar campos de entrada de texto con títulos y resultados especificados mediante las propiedadesTitle
yResult
, respectivamente. Finalmente, el objeto Aplicación de Word se libera de la memoria utilizando la instrucciónSet wordApp = Nothing
.