You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Outlook VBA宏优化:如何从输入邮箱提取名填充邮件模板

实现自动从邮箱提取FirstName填充邮件正文的VBA方案

当然可以搞定这个需求!我帮你调整VBA代码,让它先弹出输入框让你输入收件人邮箱,自动提取FirstName、填充邮件正文,还能直接把收件人添加到邮件的「收件人」栏里,彻底省去手动操作的麻烦。

修改后的完整代码如下:

Sub QuickAttachementTemplateWithAutoFill()
    Dim recipientEmail As String
    Dim firstName As String
    Dim temp As MailItem
    
    ' 弹出输入框让用户输入收件人邮箱
    recipientEmail = InputBox("请输入收件人邮箱地址:", "输入邮箱", "FirstName.LastName@company.com")
    
    ' 判断用户是否取消输入
    If recipientEmail = "" Then Exit Sub
    
    ' 从邮箱地址中提取FirstName(拆分@前的部分,取第一个点号前的内容)
    firstName = Split(Split(recipientEmail, "@")(0), ".")(0)
    
    ' 打开邮件模板
    Set temp = Application.CreateItemFromTemplate("C:\Users\WillacyMe\AppData\Roaming\Microsoft\Templates\AttachmentTemplate.oft")
    
    ' 设置收件人
    temp.To = recipientEmail
    
    ' 填充邮件正文(保持你需要的格式)
    temp.Body = "致 " & firstName & vbCrLf & _
                "请查收附件。" & vbCrLf & _
                "此致," & vbCrLf & _
                "WillacyMe"
    
    ' 显示邮件
    temp.Display
    
    Set temp = Nothing
End Sub

代码说明:

  • 输入邮箱:用InputBox弹出输入框,引导你输入收件人邮箱,默认提示格式帮你快速回忆正确写法。
  • 提取FirstName:通过Split函数先拆分邮箱的@部分,再拆分.部分,直接拿到FirstName。
  • 自动填充:把提取到的FirstName插入到正文的对应位置,同时自动把邮箱添加到收件人栏。
  • 格式保留:用vbCrLf来实现换行,确保正文和你想要的格式完全一致。

使用注意:

  1. 把原来的QuickAttachementTemplate宏替换成上面的代码即可。
  2. 如果你的模板本身已经有正文内容,代码里的temp.Body会覆盖原有内容;如果想保留模板里的其他格式,可以改用temp.HTMLBody来编写带格式的正文(比如用<br>代替vbCrLf)。

测试的时候,输入类似John.Doe@company.com的邮箱,邮件会自动填充收件人,正文里的「致 John」也会自动生成,直接添加附件就能发送啦!

内容的提问来源于stack exchange,提问作者WillacyMe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:04:19