Excel到Outlook VBA预写体

我有一个不断变化的库存清单(经常新增的新增function),我正在试图编写一个可以与Outlook一起发送预先写好的电子邮件响应的子文件。 从我在网上find的信息(比如Ron de Bruin的有用的专业知识)看来,这应该是可能的,但是我一直试图找出是否有可能在电子邮件超链接点击时执行代码H栏

例如,我在第3行的第A列中有一个人的名字,第3行中的第H行的电子邮件会自动格式化为超链接,在Outlook中打开一个新的空白邮件。 我想看看是否可以应用一个macros,每次select超链接时都会自动填充主题行和正文消息。 这是我到目前为止:

Sub SendEmail() Dim olApplication As Outlook.Application Set olApp = CreateObject("Outlook.Application") Dim olMail As Outlook.MailItem Set olMail = olApp.CreateItem(olMailItem) olMail.To= olMail.Subject = "Subject Line" olMail.Body = "This is the body of the e-mail" olMail.Display End Sub 

我到目前为止是行不通的,因为我不确定是否需要引用作为范围的“.To =”字段(H列),或者如果我需要粘贴条件语句在那里运行基于单元格超链接被选中。

你的问题的答案是肯定的。
你需要做的就是掌握在Outlook中最近打开的检查器对象
记住,当你点击链接时,它会自动创build一个MailItem。
您需要掌握新创build的MailItem对象,以便操作它。

就像是:

 Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) On Error GoTo halt Application.EnableEvents = False Dim olApp As Outlook.Application Dim olMail As Outlook.MailItem Set olApp = GetObject(, "Outlook.Application") Do While olApp.Inspectors.Count = 0 DoEvents Loop Set olMail = olApp.Inspectors.Item(1).CurrentItem With olMail .Subject = "I was able to change the subject" .Body = "Dear " & Target.Range.Offset(0, -1).Value .Display End With forward: Application.EnableEvents = True Exit Sub halt: MsgBox Err.Description Resume forward End Sub 

请注意,您需要通过正确引用将Outlook绑定到Excel
还要注意Outlook应该打开,否则你需要添加一个处理程序。
这只是指出如何在超链接之后获得新创build的mailitem。 HTH