Buenas tardes:
Muchas veces tenemos que actualizar datos que tenemos en un Documento Word como puede ser un resumen ejecutivo que contienen datos que provienen de un Excel, y que han sido utilizados para poder plasmar algunas cantidades numéricas y de análisis.
Es por ello que a través de una macro sé puede automatizar esta tarea repetitiva. Para el ejemplo a continuación ,debemos considerar lo siguiente
*Tener un Documento de Word ya creado que termine en .docx .
Ejemplo: PasteTable.docx
*En ese documento, se crea un marcador etiquetando(seleccionando el rango) la ubicación en la que desea que sus datos de Excel se actualicen (vuelvan a copiar),ir a insertar y seleccionar marcador (se encuentra en vínculos) , se activará el cuadro de diálogo y se debe indicar el nombre en este caso el marcador tendrá el nombre de DataTableHere que permitirá copiar (actualizar) el rango seleccionado del documento word PasteTable, luego el botón agregar.
(Para mayor visualización de la imagen, hacer click en la misma)
*También es necesario establecer una referencia a la biblioteca de objetos de Microsoft Word. Para ello, abra el Editor de Visual Basic en Excel y seleccione Referencias, se abre el cuadro de diálogo de referencia; desplácese hacia abajo hasta encontrar la entrada de Microsoft Word XX Object Library, donde XX es su versión de Word. Seleccione la casilla de verificación situada junto a la entrada.
(Para mayor visualización de la imagen, hacer click en la misma)
*Para este ejemplo se debe renombrar una hoja con el nombre "Revenue Table"
En el siguiente ejemplo se ejecutará la macro:
Sub Macro1()
'Paso 1: Declare las variables
Dim MyRange As Excel.Range
Dim wd As Word.Application
Dim wdDoc As Word.Document
Dim WdRange As Word.Range
'Paso 2: Copie el rango que se ha definido podrá cambiar reiteradamente
Sheets(“Revenue Table”).Range(“B4:F8”).Copy
'Paso 3: Busca y Abre el documento de Word de destino
Set wd = New Word.Application
Set wdDoc = wd.Documents.Open _
(ThisWorkbook.Path & “\” & “PasteTable.docx”)
wd.Visible = True
'Paso 4: Establecer el foco en el marcador de destino
Set WdRange = wdDoc.Bookmarks(“DataTableHere”).Range
'Paso 5: Eliminar la tabla antigua y pegar la nueva
On Error Resume Next
WdRange.Tables(1).Delete
WdRange.Paste ‘paste in the table
'Paso 6: Ajuste ancho de las columnas
WdRange.Tables(1).Columns.SetWidth _
(MyRange.Width / MyRange.Columns.Count), wdAdjustSameWidth
‘Paso 7: Vuelva a insertar el marcador (actualiza tabla)
wdDoc.Bookmarks.Add “DataTableHere”, WdRange
'Paso 8:limpieza de memoria
Set wd = Nothing
Set wdDoc = Nothing
Set WdRange = Nothing
End Sub
De esta manera podemos actualizar los datos de un word, ya que son enviado desde un libro de Excel.
Adjunto cuadro Excel de ejemplo y Documento Word .
Envio de Datos Excel a Word PasteTable
DENISSE QUILLAS FIESTAS
07/07/2017 a las 2:02 am
y para hacer al reves? Importar un archivo de Word en Excel como seria?
16/08/2017 a las 11:48 am
Es muy bueno la ilustración que facilita preparar informes en un tiempo rápido
17/12/2020 a las 11:58 am
Justo lo que necesito, tenia días rompiéndome la cabeza, saludos