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.