Cómo automatizar la combinación de correspondencia a través de VBA en Microsoft Excel

Anonim

En este artículo, aprenderemos cómo automatizar la combinación de correspondencia mediante el uso de VBA en Microsoft Excel.

Combinar correspondencia: esta es la fuente para combinar la información de los datos en texto y luego imprimir el documento. Para realizar dicha operación utilizamos Microsoft Word.

Comprendamos con un simple ejercicio: -

Tenemos un formato de carta en la hoja de Informe y queremos aplicar la combinación de correspondencia a través de VBA en la que también queremos cambiar los detalles de la carta.

Disponemos de 2 hojas. 1 hoja contiene datos con detalles a quién queremos entregar cartas. En los primeros datos, la columna A contiene el Nombre, la columna B contiene la dirección de la calle, la columna C contiene la ciudad, la columna D la región y la columna E y la columna F contienen el código postal. Hay un botón de comando para moverse en la hoja del informe.

2Dakota del Norte la hoja tiene el formato de letra con 2 botones de comando; un botón para moverse en la hoja de datos y el segundo botón de comando funciona para la combinación de correspondencia

En primer lugar, escribiremos el código VBA para el botón de comando de Main Data. Necesitamos seguir los pasos dados a continuación: -

  • Primero insertaremos el botón de comando en la hoja de trabajo.
  • Vaya a la pestaña Desarrollador y luego inserte el botón Comando de Activexcontrol.
  • Cambie el nombre del botón de Comando con el nombre "Letra", y ahora asigne la macro mencionada a continuación: -

Subprivado Main_data_Click ()

Hojas de trabajo ("Informe"). Activar

Rango ("A19"). Mostrar

End Sub

Ahora, insertaremos el segundo botón de comando en la hoja Informe y asignaremos la macro para que se mueva en la primera hoja. Necesitamos seguir los pasos dados a continuación: -

  • Cambie el nombre del botón de comando con el nombre "Datos" y asigne la macro mencionada a continuación: -

Privado Sub CommandButton2_Click ()

Hojas de trabajo ("Main_Data"). Activar

Rango ("A1"). Mostrar

End Sub

Ahora escribiremos el código principal para la combinación de correspondencia siguiendo los pasos que se indican a continuación:

Inserte el botón de comando y cámbiele el nombre a "Letter Print", y luego asigne el código mencionado a continuación: -

Privado Sub CommandButton1_Click ()

Dim StartrowAs Integer, lastrow As Integer

Cadena Dim MsgAs

Dim TotalrecordsAs String

Dim name As String, Street_AddressAs String, ciudad As String, región As String, país As String, postal As String

Totalrecords = "= countta (Main_Data! A: A)"

Rango ("L1") = Total de registros

Atenuar mydate como fecha

Establecer WRP = Hojas ("Informe")

mydate = Fecha
WRP.Range ("A9") = mydate

WRP.Range ("A9"). NumberFormat = "[$ -F800] dddd, mmmm, dd, aaaa"

WRP.Range ("A9"). HorizontalAlignment = xlLeft

Startrow = InputBox ("Ingrese el primer registro para imprimir")

lastrow = InputBox ("Ingrese el último registro para imprimir")

Si Startrow> lastrow Entonces

Msg = "ERROR" & vbCrLf & "La fila inicial debe ser menor que la última fila"

Msgbox Msg, vbCritical, "ExcelTip"

Terminara si

Para i = Startrow To lastrow

name = Sheets ("Main_data"). Celdas (i, 1)

Street_Address = Hojas ("Datos_principales"). Celdas (i, 2)

ciudad = Hojas ("Datos_principales"). Celdas (i, 3)

región = Hojas ("Datos_principales"). Celdas (i, 4)

país = Hojas ("Datos_principales"). Celdas (i, 5)

postal = Hojas ("Datos_principales"). Celdas (i, 6)

Hojas de cálculo ("Informe"). Rango ("A7") = nombre & vbCrLf & Street_Address & vbCrLf & ciudad & región & país & vbCrLf & postal

Hojas de cálculo ("Informe"). Rango ("A11") = "Estimado" & "" & nombre & ","

CheckBox1 = Verdadero

Si CheckBox1 entonces

ActiveSheet.PrintPreview

Demás

ActiveSheet.PrintOut

Terminara si

Siguiente yo

End Sub

Explicación del código: - Primero, definiremos las variables, luego definiremos el formato de fecha y fecha, luego definiremos la última fila y la fila de inicio. Luego, hemos creado un cuadro de mensaje para transmitir el mensaje. Luego definiremos los datos y rango que queremos capturar en letra.

  • Para ejecutar el código, presione la tecla F5 en el teclado.
  • Luego debe ingresar el primer punto de registro. Después de eso, obtendrá un nuevo cuadro de mensaje para ingresar el último registro de punto.

  • Y luego obtendrá el documento que se muestra a continuación

  • La carta se actualizará de acuerdo con los detalles mencionados en los datos principales.

Esta es la forma en que podemos automatizar la combinación de correspondencia a través de VBA en Microsoft Excel.