如何通过VBA在Microsoft Excel自动化邮件合并
|在本文中,我们将学习如何在Microsoft Excel中使用VBA自动进行邮件合并。
邮件合并:-这是将数据信息合并为文本,然后打印文档的来源。为了执行这样的操作,我们使用Microsoft Word。
让我们通过一个简单的练习来了解一下:-我们在“报表”表中有一种信函格式,并且我们希望通过VBA应用邮件合并,同时我们也要更改信函详细信息。
我们有2张纸。 1张纸包含详细信息,我们要向其发送信函。在第一个数据中,列A包含名称,列B包含街道地址,列C包含城市,列D区域,列E和列F包含邮政编码。在报告表中有一个命令按钮可移动。
2 ^ nd ^工作表的字母格式带有2个命令按钮;一个按钮在数据表上移动,第二个命令按钮用于邮件合并
首先,我们将为主数据的命令按钮编写VBA代码。我们需要遵循以下给出的步骤:-*首先,我们将在工作表中插入命令按钮。
-
转到“开发人员”选项卡,然后从Activexcontrol插入“命令”按钮。
-
使用名称“ Letter”重命名“命令”按钮,然后分配以下提到的宏:-Private Sub Main_data_Click()
Worksheets(“ Report”)。Activate Range(“ A19”)。Show End Sub现在,我们将在Report工作表中插入第二个命令按钮,并指定要在第一工作表上移动的宏。我们需要执行以下给定的步骤:-*将命令按钮重命名为“数据”,并分配以下提到的宏:-私人子CommandButton2_Click()
现在,我们将通过以下步骤编写邮件合并的主要代码:-插入命令按钮并将其重命名为“ Letter Print”,然后分配以下代码:-Private Sub CommandButton1_Click()
Dim StartrowAs整数,lastrow作为整数Dim MsgAs字符串Dim TotalrecordsAs字符串Dim名称为String,Street_AddressAs字符串,city为String,区域为String,国家/地区为String,邮政为String Totalrecords =“ = counta(Main_Data!A:A)”
Range(“ L1”)= Totalrecords昏暗的mydate作为日期集WRP = Sheets(“ Report”)
mydate =日期WRP.Range(“ A9”)= mydate WRP.Range(“ A9”)。NumberFormat =“ [$ -F800] dddd,mmmm,dd,yyyyy”
WRP.Range(“ A9”)。HorizontalAlignment = xlLeft Startrow = InputBox(“输入要打印的第一条记录。”)
lastrow = InputBox(“输入要打印的最后一条记录。”)
如果Startrow> lastrow然后Msg =“ ERROR”&vbCrLf&“起始行必须小于最后一行”
Msgbox Msg,vbCritical,“ ExcelTip”
如果对于i =起始行,则结束如果最后一行,则行名= Sheets(“ Main_data”)。Cells(i,1)
Street_Address = Sheets(“ Main_data”)。Cells(i,2)
city = Sheets(“ Main_data”)。Cells(i,3)
region = Sheets(“ Main_data”)。Cells(i,4)
country = Sheets(“ Main_data”)。Cells(i,5)
postal = Sheets(“ Main_data”)。Cells(i,6)
Sheets(“ Report”)。Range(“ A7”)=名称&vbCrLf&Street_Address&vbCrLf&城市和地区及国家&vbCrLf&邮政postsSheet(“ Report”)。Range(“ A11”)=“ Dear”&“”&name&“,”
CheckBox1 = True如果CheckBox1则ActiveSheet.PrintPreview否则ActiveSheet.PrintOut结束如果下一个i结束子代码说明:-首先,我们将定义变量,然后定义日期和日期格式,然后定义最后一行并开始行。然后,我们创建了用于发送消息的消息框。然后,我们将定义要捕获的数据和范围。
-
要运行代码,请按键盘上的F5键。
-
然后您必须输入第一个记录点。之后,您将获得新的消息框,以输入点的最后一条记录。
-
然后,您将获得以下显示的文档
-
信件将根据主要数据中提到的详细信息进行更新。
这是我们可以通过Microsoft Excel中的VBA自动进行邮件合并的方法。