Cómo copiar datos de Excel a Word Usando Excel VBA
Para copiar datos de Excel a un archivo de Word usando VBA, necesitamos acceder a la aplicación de Word usando Excel VBA. En este tutorial aprenderemos cómo abrir una aplicación de Word, agregar un documento y copiar y pegar datos de Excel en él.
En este artículo, utilizaremos el método de enlace anticipado para crear un objeto de aplicación de Word en lugar de utilizar el enlace tardío. Puede leerlo aquí en detalle.
El proceso de copiar datos de Excel a un archivo de Word usando Excel VBA Para copiar datos de Excel a un archivo de Word usando VBA, primero necesitamos abrir la aplicación Word, por supuesto. Luego agréguele un documento (si desea un documento nuevo). Copie los datos del archivo de Excel. Seleccione el párrafo en el documento y péguelo. Finalmente guarde y cierre el documento. Cada uno de estos pasos se puede realizar fácilmente desde Excel. No necesitará interactuar con el documento de Word.
Comencemos con un ejemplo sin profundizar en la teoría. Porque Iron Man dijo, «A veces tienes que correr antes de poder caminar».
Ejemplo: Pegar datos de Excel en Word usando VBA El siguiente código es un ejemplo de cómo puede copiar un rango de Excel y pegarlo en un nuevo documento de Word y guardarlo en la unidad para usarlo más tarde
'VBA Code To Write to Copy data from Excel to A Document Sub ExcelToWord() 'Using Early Binding Dim wordApp As Word.Application Dim mydoc As Word.Document 'Creating a new instance of word only if there no other instances Set wordApp = New Word.Application 'Making word App Visible wordApp.Visible = True 'Creating a new document Set mydoc = wordApp.Documents.Add() 'copying the content from excel sheet ThisWorkbook.Worksheets("sheet1").Range("A1:g20").Copy 'Pasting on the document mydoc.Paragraphs(1).Range.PasteExcelTable _ LinkedToExcel:=False, _ WordFormatting:=False, RTF:=False 'saving the document mydoc.SaveAs2 "MyDoc" 'closing the document mydoc.Close 'Emptying the Clipboard CutCopyMode = False End Sub
Explicación del código:
Bueno, he explicado cada paso en el código usando comentarios, pero tengamos algunas palabras sobre las líneas que hemos usado en este sub.
_ ‘Variables creadas de aplicación de Word y tipo de documento_ Dim wordApp como Word.Application Dim mydoc como Word.Document Aquí hemos declarado dos variables de los tipos requeridos. Podemos hacer esto porque ya hemos agregado la referencia a la palabra aplicación. Puede hacer esto yendo a herramientas en el menú. Opción de búsqueda de referencias y luego busque la palabra de referencia.
_ ‘Creando una nueva instancia de word solo si no hay otras instancias _Set wordApp = New Word.Application ‘Making word App Visible wordApp.Visible = True _ _’Creating a new document _Set mydoc = wordApp.Documents.Add ( ) _ En la primera línea de arriba, intentamos la variable wordApp con un objeto de tipo Word.App usando la palabra clave New. Esto abrirá la aplicación de Word.
En la segunda línea estamos haciendo visible la palabra aplicación para que podamos trabajar con ella.
En la siguiente línea, agregamos un nuevo documento a la aplicación de Word usando la función Word.Documents.Add (). Esto se almacena en la variable mydoc.
‘copiando el contenido de la hoja de Excel ThisWorkbook.Worksheets («sheet1»). Range («A1: G20»). Copy Aquí simplemente estamos copiando un rango de Excel. Debes haberlo hecho antes. Se almacena en el portapapeles.
‘Pasando en el documento mydoc.Paragraphs (1) .Range.PasteExcelTable _LinkedToExcel: = False, _WordFormatting: = False, _ _RTF: = False Estamos usando el método PasteExcelTable de la clase Paragraph.Range de mydoc para pegar datos de portapapeles.
_ ‘guardando el documento_ mydoc.SaveAs2 «MyDoc» _ _’cierre el documento mydoc.Close ‘Emptying the Clipboard CutCopyMode = False Estamos guardando el documento con el nombre MyDoc. Luego cerramos el documento usando la función Cerrar. Finalmente liberamos el portapapeles para que lo utilicen otros.
Así que sí, chicos, así es como pueden crear un nuevo documento de Word y copiar datos de Excel usando VBA. No he entrado en detalles, ya que haría que el artículo fuera exageradamente largo. Esto fue solo para aprender cómo pegar en un documento de Word a través de Excel. Espero que te haya ayudado a comprender el proceso. Si tiene alguna pregunta sobre este artículo, puede comunicarse conmigo a través de la sección de comentarios a continuación.
Artículos relacionados:
link: / applications-word-outlook-in-vba-Getting-started-with-excel-vba-userforms [Empezando con Excel VBA UserForms]
| * Explicaré cómo crear un formulario en Excel, cómo usar Caja de herramientas de VBA, cómo manejar las entradas del usuario y finalmente cómo almacenar las entradas del usuario. Repasaremos estos temas usando un ejemplo y una guía paso a paso.
link: / general-topics-in-vba-vba-variables-in-excel [Variables VBA en Excel]
| * VBA significa Visual Basic para Aplicaciones.
Es un lenguaje de programación de Microsoft. Se utiliza con aplicaciones de Microsoft Office como MSExcel, MS-Word y MS-Access, mientras que las variables de VBA son palabras clave específicas.
link: / general-topics-in-vba-excel-vba-variable-scope [Excel VBA Variable Scope]
| * En todos los lenguajes de programación, tenemos especificadores de acceso a variables que definen desde dónde se puede acceder a una variable definida. Excel VBA no es una excepción. VBA también tiene especificadores de alcance.
link: / celdas-rangos-filas-y-columnas-en-vba-cuál-es-la-diferencia-entre-byref-y-byval-argumentos-vba-entrevista-pregunta [ByRef y ByVal Arguments]
| Cuando un argumento se pasa como un argumento ByRef a una función o sub diferente, se envía la referencia de la variable real. Cualquier cambio realizado en la copia de la variable se reflejará en el argumento original.
link: / files-workbook-and-worksheets-in-vba-delete-sheets-without-confirm-prompts-using-vba-in-microsoft-excel [Eliminar hojas sin mensajes de confirmación usando VBA en Microsoft Excel]
| Dado que está eliminando hojas usando VBA, sabe lo que está haciendo.
Le gustaría decirle a Excel que no muestre esta advertencia y elimine la maldita hoja.
link: / files-workbook-and-worksheets-in-vba-add-and-save-new-workbook-using-vba-in-microsoft-excel [Add And Save New Workbook Using VBA In Microsoft Excel 2016]
| En este código, primero creamos una referencia a un objeto de libro de trabajo. Y luego lo inicializamos con un nuevo objeto de libro de trabajo. El beneficio de este enfoque es que puede realizar operaciones en este nuevo libro de trabajo fácilmente. Como guardar, cerrar, eliminar, etc `link: / menus-toolbars-status-bar-in-vba-display-a-message-on-the-statusbar-using-vba-in-microsoft-excel [Display A Message On La barra de estado de Excel VBA *] `| La barra de estado en Excel se puede utilizar como monitor de código. Cuando su código VBA es extenso y realiza varias tareas usando VBA, a menudo deshabilita la actualización de la pantalla para que no vea que la pantalla parpadea.
link: / general-topics-in-vba-turn-off-warning-messages-using-vba-in-microsoft-excel [Desactivar mensajes de advertencia usando VBA en Microsoft Excel 2016]
| * Este código no solo deshabilita VBA alertas, pero también aumenta la eficiencia del tiempo del código. Veamos cómo.
Artículos populares:
link: / keyboard-formula-shortcuts-50-excel-shortcuts-to-incrementa-su-productividad [50 accesos directos de Excel para aumentar su productividad]
| Acelera tu tarea. Estos 50 atajos le permitirán trabajar aún más rápido en Excel.
link: / fórmulas-y-funciones-introducción-de-vlookup-function [La función VLOOKUP en Excel]
| Esta es una de las funciones más utilizadas y populares de Excel que se utiliza para buscar valores de diferentes rangos y hojas. enlace: / tips-countif-in-microsoft-excel [COUNTIF en Excel 2016]
| Cuente valores con condiciones usando esta asombrosa función. No necesitas filtrar tus datos para contar valores específicos.
La función Countif es esencial para preparar su tablero.
link: / excel-formula-and-function-excel-sumif-function [Cómo usar la función SUMIF en Excel]
| Esta es otra función esencial del tablero. Esto le ayuda a resumir valores en condiciones específicas.