Muchas veces, tiene que copiar datos de un archivo de Excel a un documento de Word. Puede hacer esto con una macro muy fácilmente. La macro abrirá un documento de Word nuevo / existente, copiará el contenido y luego guardará y cerrará el documento de Word. Veamos cómo se hace esto.

El código que puede utilizar es – Option Explicit _Sub CreateNewWordDoc ()

Dim i como entero Dim wrdApp como objeto, wrdDoc como conjunto de objetos wrdApp = CreateObject (“Word.Application”)

wrdApp.Visible = True Establecer wrdDoc = wrdApp.Documents.Add With wrdDoc For i = 1 to 100 .Content.InsertAfter “Aquí hay un ejemplo de línea de prueba #” & i .Content.InsertParagraphAfter Next i If Dir (“B: \ Test \ MyNewWordDoc.docx ”) <>“ ”Luego mata“ B: \ Test \ MyNewWordDoc.docx ”.SaveAs (“ B: \ Test \ MyNewWordDoc.docx ”)

Close End With wrdApp.Quit Set wrdDoc = Nothing Set wrdApp = Nothing End Sub_ Para copiar el código anterior a su archivo, presione Alt + F11 en el teclado En el lado izquierdo, verá Objetos de Microsoft Excel Haga clic derecho y seleccione Insertar Luego haga clic en Módulo * Copie el código en la ventana de código a la derecha Ahora veamos cómo funciona este código – Primero declaramos las variables que necesitamos –i como entero para incrementar cada fila a medida que se completa desde el archivo de Excel a la palabra doc Luego, las 2 variables de objeto wrdApp y wrdDoc, wrdApp es el objeto Aplicación de Word y wrdDoc es el objeto Documento de Word.

Set wrdApp = CreateObject («Word.Application») _ Si Word ya se está ejecutando en su sistema, _CreateObject creará una nueva instancia de Word.Así que esta línea asigna la variable de objeto wrdApp a la aplicación de Word que puede usar más adelante en el código .

wrdApp.Visible = True La instancia recién creada de Word no será visible cuando se cree. Para hacerlo visible, debe configurar wrdApp.Visible = True para que sea visible.

Set wrdDoc = wrdApp.Documents.Add Creamos la nueva instancia de la aplicación de Word, pero todavía no hemos abierto un documento de Word en blanco. Entonces este comando abrirá un nuevo documento de Word. El objeto wrdDoc ha sido asignado a este nuevo documento para que podamos usarlo más adelante en el código.

En caso de que no desee abrir un libro nuevo pero abra un libro existente, puede reemplazar esta línea con _Set wrdDoc = wrdApp.Documents.Open (“B: \ Mis documentos \ WordDocs \ Doc1.docx”) _ Esta línea se abre un documento de Word existente que se ha guardado en la ubicación especificada.

With wrdDoc… .End With Este es nuestro bucle “With” que funcionará completamente con el objeto wrdDoc. Una vez que abra este bucle, no es necesario que vuelva a repetir el texto “wrdDoc” en este bucle. Puede comenzar directamente con el punto (“.”)

antes de cualquier objeto relacionado con wrdDoc. Este ciclo termina con la instrucción End With. Una vez que se ha ingresado la instrucción End With, no puede hacer referencia a los objetos después de wrdDoc con solo el «.»

For i = 1 a 100 .Content.InsertAfter “Aquí hay un ejemplo de línea de prueba #” & i .Content.InsertParagraphAfter Next i Este es el ciclo “For”. Se incrementa de 1 a 100 y en cada incremento, inserta una línea con el texto «Aquí hay un ejemplo de línea de prueba #» y luego agrega el número de incremento. Luego inserta un salto de línea / salto de párrafo para que el siguiente incremento aparezca en el siguiente línea, como un nuevo párrafo.

Así que este proceso se repetirá 100 veces, ya que el ciclo for indica For i = 1 a 100. Esta es la salida que obtendrá –

img2

Si Dir («B: \ Test \ MyNewWordDoc.Docx») <> «» Entonces mata «B: \ Test \ MyNewWordDoc.docx» _ _ .SaveAs («B: \ Test \ MyNewWordDoc.docx») _ _.Close Una vez que se completa el ciclo «For», el código verificará si existe el archivo MyNewWordDoc.docx. Si lo hace, lo eliminará. Y luego guardará el nuevo archivo con este mismo nombre y cerrará el archivo.

wrdApp.Quit Set wrdDoc = Nothing Set wrdApp = Nothing Se cierra la aplicación word y luego los 2 objetos que fueron creados serán liberados o configurados en “Nothing”, de modo que se libere la memoria ocupada por estos objetos. Este es el código completo que se encarga de copiar los contenidos de Excel a Word.

image 48