El proceso de copiar contenido desde una hoja de cálculo de Excel a un documento de Word se puede simplificar mediante una macro. Veamos los siguientes pasos:
1. Seleccionar en el Menú Herramientas >> Referencias la opción de MicrosoftWord
La versión de la referencia será distinta en función de la versión de Office que este utilizando.
Para Office 2010 la referencia a seleccionar es Microsoft Word 14.0 Object Library
En el caso del Office 2013 la referencia a seleccionar es Microsoft Word 15.0 Object Library
2. Para emplear la macro para exportar datos de Excel a Word, se puede escribir el siguiente código en la hoja de cálculo que contiene la información a copiar, o en un módulo.
Debe tenerse cuidado con las comillas dobles que están al rededor de Word.Application, estas deben ser las normales no las inclinadas, se si empelan las inclinadas se producirá el error 424.
Sub Copiar_a_Word()
Dim WordApp As Object
Set WordApp = CreateObject("Word.Application")
Selection.Copy
With WordApp
'Con este codigo se abrira Word y se creara un documento nuevo
.Visible = True
.Activate
.Documents.Add
End With
WordApp.Selection.PasteSpecial link:=True
'Se pegara en el documento lo seleccionado en la hoja de calculo
WordApp.Selection.Sections(1).Footers(1).Range.Text = "Pie de Página"
Set WordApp = Nothing
End Sub
La macro indicada nos permitirá pasar datos de Excel a Word automáticamente.
3. Seleccionar la información (por lo general son tablas) que se desea copiar
5. Luego de seleccionar la macro a ejecutar, se crea un documento en Word con la información seleccionada
Como se podrá ver, la serie de pasos que comúnmente se realizan para el copiado de información se reduce a un solo paso.
Elaborado por: Arlette Olivera
28/12/2019 a las 6:44 pm
Hola a todos, estoy intentando desde una hoja en excel pasar información hacia varios documentos word (No plantillas), necesitando que la msma se actualice al momento de introducir nuevo datos. He utilizado el pegado especial de word y me resulta, solo que son muchos documentos y en verdad, relacionar uno por uno me resulta muy tedioso.
Les agredecería si pueden darme alguna idea sobre ello y que me facilte el trabajo.
Saludos
30/04/2020 a las 10:04 pm
Hola buenas noches. He trabajado con un código por algunos días para migrar información de un archivo de Excel a una plantilla de Word. Todo va perfecto si el texto que exporto no hace parte del encabezado del archivo de Word. He intentado por todo lado pero nada. Veo que aquí tiene una línea para hacer algo parecido en el pié de página. No se como incluirlo en mi macro. Gracias de antemano.
Sub ExportWord()
'
patharch = ThisWorkbook.Path & "\_Plantilla.dotx"
'
For i = 2 To Range("A" & Rows.Count).End(xlUp).Row
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
objWord.Documents.Add Template:=patharch, NewTemplate:=False, DocumentType:=0
'
For j = 1 To Cells(1, Columns.Count).End(xlToLeft).Column
textobuscar = Cells(1, j)
objWord.Selection.Move 6, -1
objWord.Selection.Find.Execute FindText:=textobuscar
'
While objWord.Selection.Find.Found = True
objWord.Selection.Text = Cells(i, j) 'texto a reemplazar
objWord.Selection.Move 6, -1
objWord.Selection.Find.Execute FindText:=textobuscar
Wend
While objWord.Selection.Find.Found = True
objWord.Selection.Text = Cells(i, j) 'texto a reemplazar
objWord.Selection.Move 6, -1
objWord.Selection.Headers(wdHeaderFooterPrimary).Execute FindText:=textobuscar
Wend
'
Next
'
MsgBox "¡Documento generado exitosamente!", vbInformation, «»
objWord.Activate
objWord.ActiveDocument.SaveAs "C:\Users\Asus-PC\Desktop\Resol\RES_" & Hoja6.Range("A3") & "_" & Hoja6.Range("W3") & ".docx"
End
Next
End Sub
09/02/2022 a las 9:52 pm
hola me funciona el código pero sale descuadrado en el Excel me podrías apoyar como hago para que quede en bien en la hoja gracias
28/03/2023 a las 5:21 pm
Muy bueno su aporte, muchas gracias.
Tengo un problema al aplicar la macro, el texto en Word queda vinculado al texto en Excel del que procede. Uso Excel 365.
Gracias,
Denis Rojas
Perú