Muchas veces, debe 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 usar es:
Opción explícita
Sub CreateNewWordDoc ()
Dim i como entero
Dim wrdApp como objeto, wrdDoc como objeto
Establecer wrdApp = CreateObject ("Word.Application")
wrdApp.Visible = Verdadero
Establecer wrdDoc = wrdApp.Documents.Add
Con wrdDoc
Para i = 1 a 100
.Content.InsertAfter "Aquí hay un ejemplo de línea de prueba #" & i
.Content.InsertParagraphAfter
Siguiente yo
Si Dir ("B: \ Test \ MyNewWordDoc.docx") "" Entonces mata "B: \ Test \ MyNewWordDoc.docx"
.SaveAs ("B: \ Test \ MyNewWordDoc.docx")
.Cerrar
Terminar con
wrdApp.Quit
Establecer wrdDoc = Nada
Establecer wrdApp = Nada
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 un número entero para incrementar cada fila a medida que se llena 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.
Establecer wrdApp = CreateObject ("Word.Application")
Si Word ya se está ejecutando en su sistema,Crear objeto creará una nueva instancia de Word. Entonces, 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 = Verdadero
La instancia recién creada de Word no estará visible cuando se cree. Para hacerlo visible, debe configurar wrdApp.Visible = True para que sea visible.
Establecer 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 nuevo libro de trabajo pero abra un libro de trabajo existente, puede reemplazar esta línea con
Establezca wrdDoc = wrdApp.Documents.Open ("B: \ Mis documentos \ WordDocs \ Doc1.docx")
Esta línea abre un documento de Word existente que se ha guardado en la ubicación especificada.
Con wrdDoc… .Terminar con
Este es nuestro ciclo "Con" 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 bucle termina con el Terminar con declaración. 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 ".".
Para i = 1 a 100
.Content.InsertAfter "Aquí hay un ejemplo de línea de prueba #" & i
.Content.InsertParagraphAfter
Siguiente yo
Este es el ciclo "For". 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 la siguiente línea, como un nuevo párrafo.
Entonces, este proceso se repetirá 100 veces, ya que el bucle for indica For i = 1 a 100. Esta es la salida que obtendrá:
Si Dir ("B: \ Test \ MyNewWordDoc.Docx") "" Entonces mata "B: \ Test \ MyNewWordDoc.docx"
.SaveAs ("B: \ Test \ MyNewWordDoc.docx")
.Cerrar
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
Establecer wrdDoc = Nada
Establecer wrdApp = Nada
Se cierra la palabra aplicación y luego los 2 objetos que fueron creados serán liberados o configurados en “Nada”, de modo que se libera la memoria ocupada por estos objetos. Este es el código completo que se encarga de copiar los contenidos de Excel a Word.