每次更新特定的Excel工作表时,如果总是需要向特定的收件人发送电子邮件通知,可以使用本文介绍的方法。
一些用户要求一种解决方案,让 MS Excel 在每次更新特定工作表时自动向特定人员发送 Outlook 电子邮件通知,因为他们经常忘记发送这样的电子邮件。 下面,我们将指导如何用VBA代码实现这个功能。

更新特定 Excel 工作表时自动发送电子邮件
- 首先,访问包含特定工作表的源 Excel 工作簿。
- 然后,在 MS Excel 窗口中,前往“文件”菜单并选择“选项”。
- 接下来,在“Excel选项”窗口中,切换到“信任中心”选项卡,然后单击“信任中心设置”按钮。
- 随后,在新窗口中,切换到“宏设置”选项卡,您应该在该选项卡下选择“启用所有宏”。
- 之后,转到“隐私选项”选项卡并启用“保存时从文件属性中删除个人信息”功能。
- 然后,单击几个“确定”以保存这些设置。
- 回到Excel工作簿后,访问具体的工作表。
- 右键单击底部边栏中的工作表名称,然后选择“查看代码”。
- 之后,将以下VBA代码复制到具体工作表的项目中。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim nConfirmation As Integer
Dim objNewWorkbook As Excel.Workbook
Dim objNewWorksheet As Excel.Worksheet
Dim objOutlookApp As Object
Dim objMail As Object
nConfirmation = MsgBox("Do you want to send an email notification about the sheet updating now?", vbInformation + vbYesNo, "Mail Sheet Updates")
If nConfirmation = vbYes Then
ActiveWorkbook.Save
On Error Resume Next
Set objOutlookApp = CreateObject("Outlook.Application")
Set objMail = objOutlookApp.CreateItem(olMailItem)
'Change the email details as per your needs
With objMail
.To = "test@datanumen.com"
.Subject = "Email Notifying Sheet Updates"
.Body = "Hi," & vbCrLf & vbCrLf & "The worksheet " & Chr(34) & ActiveWorkbook.Sheets(1).Name & Chr(34) & " in this Excel workbook attachment is updated."
'Attach this workbook
.Attachments.Add ActiveWorkbook.FullName
.Send
End With
End If
End Sub
- 之后,您应该将此工作簿保存为 Excel 启用宏的工作簿。
- 首先,关闭“Microsoft Visual Basic for Applications”窗口。
- 然后,点击左上角的“文件”。
- 接下来,选择“另存为”。
- 在对话框中,在“保存类型”字段中选择“Excel 启用宏的工作簿”。
- 最后,单击“保存”按钮。
- 最后,您可以关闭此工作簿。
- 现在,您可以打开以前保存的 Excel 启用宏的工作簿。
- 当您在特定工作表中进行任何更改时,您将收到一条消息,询问是否发送电子邮件通知。
- 当您单击“是”按钮时,Outlook 电子邮件将发送到预定义的收件人。
- 此电子邮件将类似于下面的屏幕截图:
修复损坏的 Outlook 数据文件
也许您遇到过 Excel 文件损坏的情况。 实际上,Outlook 数据文件与 Excel 文件一样容易受到攻击。 例如,不正确地关闭 Outlook 很容易导致 PST 文件损坏。 因此,必须采取措施保护 Outlook 文件,包括定期备份数据以及准备强大的 PST 修复工具,例如 DataNumen Outlook Repair. 这个实用程序足够强大 修复PST 问题和恢复 PST 数据。
作者简介:
Shirley Zhang 是一位数据恢复专家 DataNumen, Inc.,它是数据恢复技术领域的世界领先者,包括 修复 和 outlook 修复软件产品。 欲了解更多信息,请访问 datanumen.com






