我正在尝试设置一个电子表格,以便在保存工作表时随时发送自动电子邮件;到目前为止,目标已经完成我想出了如何设置mailenvelope将使用电子邮件发送的工作表范围,即使工作正常。不过,我是VBA的新手,并且试图弄清楚如何让自动化mailenvelope只发送第一行(列A-R),以及任何带有"最新更改的行"电子邮件中第一行下方的单元格(行A-R)。我的想法是,如果我在工作表中添加任何内容并保存,自动信封会发送一封电子邮件,其中只包含我更新的行。这是我到目前为止所拥有的,现在范围只是设置为第一行,这在电子邮件中效果很好。
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
ActiveSheet.Range("A1:R1").Select
ActiveWorkbook.EnvelopeVisible = True
With ActiveSheet.MailEnvelope
.Introduction = "Hello,Team! - the workbook was saved by " _
_& Environ("USERNAME") & " at " & Format(Now(), "ddd dd mmm yy hh:mm")
.Item.To = "abc123@company.com"
.Item.Subject = "Workbook updated! Please check the sheet for _
_relevant info. (Automated Email)"
.Item.display
'.Item.send
End With
End Sub
我认为我可以通过使用工作簿更改事件以某种方式获取最新更改的单元格的范围,但我迷失了如何将目标范围行插入到我需要的行中的邮件信封中。谢谢!