Excel 根据单元格值自动发送电子邮件

  • Post category:云计算

在Excel中,您可以设置当单元格值发生变化时自动发送电子邮件。以下是在Excel中设置此功能的完整攻略:

  1. 打开包含宏的Excel工作簿。

  2. 在“开发人员”选项卡中,选择“Visual Basic”。

  3. 在“Microsoft Visual Basic for Applications”窗口中选择“这个工作簿”。

  4. 在“这个工作簿”窗口中,选择“Workbook”对象。

  5. 在“Workbook”对象中,选择“Worksheet_Change”事件。

  6. 输入要运行的宏代码。

  7. 保存宏代码并关闭“Microsoft Visual Basic for Applications”窗口。

现在,当单元格值发生变化时,Excel将动发送电子邮件。

以下是两个示例:

示例1:在Excel中设置当单元格值发生变化时自动发送电子邮件给特定收件人

假设您有一个名为“订单记录”的Excel工作簿,其中包含每个订单的订单号、客户名称和订单状态。您想要设置当订单状态变为“已发货”时自动发送电子邮件给客户。以下是如何完成此操作的完整攻略:

  1. 打开包含宏的Excel工作簿。

  2. 在“开发人员”选项卡中选择“Visual Basic”。

  3. 在“Microsoft Visual Basic for Applications”窗口中,选择“这个工作簿”。

  4. 在“这个工作簿”窗口中,选择“Workbook”对象。

  5. 在“Workbook”对象中,选择“Worksheet_Change”事件。

  6. 输入以下宏代码:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("C2:C100")) Is Nothing Then
        If Target.Value = "已发货" Then
            Dim OutApp As Object
            Dim OutMail As Object
            Set OutApp = CreateObject("Outlook.Application")
            Set OutMail = OutApp.CreateItem(0)
            With OutMail
                .To = Range("B" & Target.Row).Value
                .Subject = "订单已发货"
                .Body = "尊敬的客户,您的订单已发货。"
                .Send
            End With
            Set OutMail = Nothing
            Set OutApp = Nothing
        End If
    End If
End Sub
  1. 保存宏代码并关闭“Microsoft Visual Basic for Applications”窗口。

现在,当订单状态变为“已发货”时,Excel将自动发送电子邮件给客户。

示例2:在Excel中设置当单元格值发生变化时自动发送电子邮件给多个收件人

假设您有一个名为“销售报告”的Excel工作簿,其中包含每个销售员的销售数据。您想要设置当某个销售人员的销售额超过10000美元时,自动发送电子邮件给售经理和财务部门。以下是如何完成此操作的完整攻略:

  1. 打开包含宏的Excel工作簿。

  2. 在“开发人员”选项卡中选择“Visual Basic”。

  3. 在“Microsoft Visual Basic for Applications”窗口中,选择“这个工作簿”。

  4. 在“这个工作簿”窗口中,选择“Workbook”对象。

  5. 在“Workbook”对象中,选择“Worksheet_Change”事件。

  6. 输入以下宏代码:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("C2:C100")) Is Nothing Then
        If Target.Value > 10000 Then
            Dim OutApp As Object
            Dim OutMail As Object
            Set OutApp = CreateObject("Outlook.Application")
            Set OutMail = OutApp.CreateItem(0)
            With OutMail
                .To = "salesmanager@example.com;finance@example.com"
                .Subject = "销售额超过10000美元"
                .Body = "尊敬的销售经理和财务部门,以下销售人员的销售额超过10000美元:" & vbCrLf & vbCrLf "销售人员:" & Range("B" & Target.Row).Value & vbCrLf & "销售额:" & Target.Value
                .Send
            End With
            Set OutMail = Nothing
            Set OutApp = Nothing
        End If
    End If
End Sub
  1. 保存宏代码并关闭“Microsoft Visual Basic for Applications”窗口。

现在,当某个销售人员的销售额超过10000美元时,Excel将自发送电子邮件给销售经理和财务部门。