自动发送电子邮件的Excel宏(3个合适的例子)。

  • Share This
Hugh West

本教程将说明如何使用excel宏来自动发送电子邮件。 我们可以使用以下方法配置我们的邮件功能 VBA 所以,使用 VBA 宏观上,我们可以同时向多个用户发送一封邮件。 我们必须有 展望 因为我们要插入的代码将使用到我们的设备上的宏来自动发送电子邮件。 展望 来向收件人发送电子邮件。

下载实践工作手册

你可以从这里下载实践工作手册。

自动发送电子邮件.xlsm

3个自动发送电子邮件的Excel宏的合适例子

在这篇文章中,我们将展示 3 使用excel宏自动发送电子邮件给收件人的合适例子。 在开始说明这个例子之前,我们需要在我们的excel表格中修正一个东西。 在应用宏自动发送电子邮件之前,完成以下步骤。

步骤。

  • 首先,从你的数据集中,转到 开发者 "选项卡 选择选项 视觉基础 .

  • 接下来,到 工具 标签,并选择选项 参考文献 .

  • 一个名为''的新对话框 参考资料 - VBAProject '将打开。
  • 最后,检查选项' 微软Office 16.0对象库 '并点击 认可 .

1.应用Excel VBA宏,根据单元格值自动发送电子邮件

首先,也是最重要的,我们将应用excel VBA 宏,根据数据集中的特定单元格值自动发送电子邮件。 为了说明这个例子,我们将使用以下数据集。 我们将写一段代码,如果单元格中的值是 D6 大于 400 .

让我们看看执行这一行动的步骤。

步骤。

  • 首先是。 - 点击 在这张表上的' 基于细胞 '.
  • 此外,请选择选项' 查看代码 '.

  • 上述操作将打开一个空白的 VBA 另一种打开代码窗口的方法是按下 符号 + F11 .
  • 此外,在该代码窗口中输入以下代码。
 Dim rg As Range Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If Target.Cells.Count> 1 Then Exit Sub Set rg = Intersect(Range("D6"), Target) If rg Is Nothing Then Exit Sub If IsNumeric(Target.Value) And Target.Value> 400 Then Call send_mail_outlook End If End Sub send_mail_outlook() Dim z As Object Dim Y As Object Dim b As String Set z =CreateObject("Outlook.Application") Set y = z.CreateItem(0) b = "Hello!" & vbNewLine & vbNewLine & _ "Hope you are well" & vbNewLine & _ "Visit our site Exceldemy" On Error Resume Next With y .To = "Address" .cc = " " .BCC = " " .Subject = " send mail based on cell value" .Body = b .Display End With On Error GoTo 0 Set y = Nothing Set z = Nothing End Sub 
  • 然后,点击 运行 按钮或按 F5 键来运行该代码。

  • 一个新的对话框名为 巨集 将会出现。
  • 此后,在 巨集名称 字段中选择宏'。 发送_邮件_外观 '.
  • 现在点击 运行 按钮。

  • 最后,从现在开始,当单元格中的值在 D6> 400 一封电子邮件中 展望 我们只需点击 "我的",就会自动生成有特定收件人的邮件。 发送 按钮来发送电子邮件。

阅读更多。 根据单元格内容从Excel中自动发送邮件(2种方法)

2.用VBA宏程序根据到期日自动发送电子邮件

在第二种方法中,我们将使用Excel的 VBA 如果任何项目的到期日临近,宏将自动发送一封电子邮件。 这类似于提醒。 我们使用以下数据集来说明这个例子。 该数据集包含不同销售人员的电子邮件、信息和他们项目的到期日。

按照下面的步骤来执行这个方法。

步骤。

  • 首先,在工作表上点击右键 日期 .
  • 下一步,选择选项' 查看代码 '.

  • 它打开了一个空白的 VBA 我们还可以按 符号 + F11 以获得该代码窗口。
  • 然后,在该代码窗口插入以下代码。
 Public Sub Based_on_Date() Dim aRgDate As Range Dim aRgSend As Range Dim aRgText As Range Dim aRgDone As Range Dim aOutApp As Object Dim aMailItem As Object Dim aLastRow As Long Dim CrLf As String Dim aMailBody As String Dim zRgDateVal As String Dim zRgSendVal As String Dim aMailSubject As String Dim j As Long On Error Resume Next Set aRgDate = Application.InputBox("选择应付款列date:", _ "Send Mail Base on Date", , , , 8) If aRgDate Is Nothing Then Exit Sub Set aRgSend = Application.InputBox("Select the email recipients column:", _ "Send Mail Base on Date", , , , , 8) If aRgSend Is Nothing Then Exit Sub Set aRgText = Application.InputBox("Select the content column of email:" , _ "Send Mail Base on Date", , , , , 8) If aRgText Is Nothing Then Exit Sub aLastRow =aRgDate.Rows.Count Set aRgDate = aRgDate(1) Set aRgSend = aRgSend(1) Set aRgText = aRgText(1) Set aOutApp = CreateObject("Outlook.Application") For j = 1 To aLastRow zRgDateVal = "" zRgDateVal = aRgDate.Offset(j - 1).Value If zRgDateVal "" Then If CDate(zRgDateVal) - Date 0 Then zRgSendVal = aRgSend.Offset(j - 1).Value aMailSubject = aRgText.Offset(j - 1).Value & " on " & zRgDateVal CrLf= " 

" aMailBody = "" aMailBody = aMailBody & "Hello " & zRgSendVal & CrLf aMailBody = aMailBody & "Message: " & aRgText.Offset(j - 1).Value & CrLf aMailBody = aMailBody & "" Set aMailItem = aOutApp.CreateItem(0) With aMailItem .Subject = aMailSubject .To = zRgSendVal .HTMLBody = aMailBody .Display End With Set aMailItem = Nothing End If End If Next Set aOutApp = Nothing 结束子

  • 现在,使用 运行 按钮或 F5 键来运行该代码。

  • 将弹出一个新的对话框。
  • 之后,在该对话框的输入字段中选择到期日期栏范围 D$5:$D$9 然后,点击 认可 .

  • 还会弹出一个对话框。
  • 此外,在输入栏中选择列的范围 B$5:$B$9 包含电子邮件地址,并点击 认可 .

  • 此外,还将弹出一个窗口。 选择信息范围 $C$5:$C$9 在弹出窗口的输入字段中。

  • 最后,我们可以看到如下图所示的结果。 我们得到了 3 中自动创建的电子邮件。 3 不同的窗口 展望 .这将不会为前两个电子邮件地址创建邮件。 因为这两个项目的到期日已经过去。

阅读更多。 如何根据日期从Excel自动发送电子邮件

类似读物

  • [解决]:共享工作簿在Excel中不显示(含简单步骤)
  • 如何从Excel列表中发送邮件(2种有效方法)
  • 如何通过电子邮件发送可编辑的Excel电子表格(3种快速方法)
  • 从Excel中发送电子邮件的宏(5个合适的例子)。
  • 从Excel发送带正文的邮件的宏(3个实用案例)

3.使用Excel宏自动发送带附件的电子邮件

在最后一个例子中,我们将看到如何开发一个excel宏来自动发送带有附件的电子邮件。 假设我们有一个附件,如下图所示。 我们想通过电子邮件使用excel来发送这个附件 VBA 要做到这一点,我们需要这个excel文件的路径。 以下是这方面的步骤。

  • 选择文件'。 附件.xlsx ' '.
  • 点击选项' 复制路径 '.

  • 所以,我们得到的文件的路径。
E:/Exceldemy/Attachment.xlsx

我们将在我们的宏代码中插入这个路径,以通过电子邮件发送这个文件。 按照以下步骤来做。

步骤。

  • 首先,到 开发商 标签,并选择选项 视觉基础 .

  • 一个名为'的新窗口 项目 - VBAProject将打开 '.
  • 其次。 右键点击 在纸张名称上。
  • 然后,选择 插入 > 模块 .

  • 上述命令将打开一个空白的 VBA
  • 第三,在该模块中输入以下代码。
 Sub send_Email_complete() Dim MyOutlook As Object Set MyOutlook = CreateObject("Outlook.Application") Dim MyMail As Object Set MyMail = MyOutlook.CreateItem(olMailItem) MyMail.To = "[email protected]" MyMail.cc = "[email protected]" MyMail.BCC = "[email protected]" MyMail. Subject = "用VBA发送邮件。" MyMail.Body = "这是一个样本邮件。" Attached_File = "E:\Eeldemy\Attachment.xlsx"MyMail.Attachments.Add Attached_File MyMail.send Sub 
  • 然后,点击 F5 键或点击 运行 按钮来运行该代码。

  • 最后,该代码将把附件发送到代码中提供的电子邮件中。 该代码通过以下方式发送电子邮件 展望 因此,请点击 允许 按钮,让 展望 发送附件到给定的电子邮件。

阅读更多。 如何应用宏来从Excel发送带附件的电子邮件

总结

总之,这篇文章表明 3 使用EXCEL的例子 VBA 宏来自动发送邮件。 下载本文给出的工作表样本,以测试你的技能。 如果你有任何问题,请在下面的框中留言。 我们的团队将尽快回复你的信息。 请注意更多的创造性 微软Excel 未来的解决方案。

Hugh West is a highly experienced Excel trainer and analyst with over 10 years of experience in the industry. He holds a Bachelor's degree in Accounting and Finance and a Master's degree in Business Administration. Hugh has a passion for teaching and has developed a unique teaching approach that is easy to follow and understand. His expert knowledge of Excel has helped thousands of students and professionals worldwide improve their skills and excel in their careers. Through his blog, Hugh shares his knowledge with the world, offering free Excel tutorials and online training to help individuals and businesses reach their full potential.