如何在VBA代码中将名称转换为电子邮件地址

时间:2018-09-24 00:30:01

标签: excel vba excel-vba

我有一个电子表格,我想将其中的各个部分(包括标题)发送给某些人。我有一个标题为“名称”的字段,我希望宏提取名称并填写相同的域。因此,如果有一个名称“ Jack Smith”,我想将电子表格的部分发送到“ Jack.Smith@xyzcompany.com”

以下是我的电子表格列。我希望能够突出显示选定的行数,并通过将“名称”列更改为“ Firstname.Lastname@xyzcompany.com”的电子邮件地址格式,将其通过电子邮件发送给相应的名称

列: 添加日期
代码
名称
位置

以下是我到目前为止的内容。

Sub rr()

Dim r As Range

Set r = Selection

ActiveWorkbook.EnvelopeVisible = True

With r.Parent.MailEnvelope.Item
.To = "Firstname.Lastname@xyzcompany.com"
.CC = ""
.BCC = ""
.Subject = "List Info"
.attachements.Add ""
.Send
End With

End Sub

谢谢!

1 个答案:

答案 0 :(得分:0)

如果确定要使用“选择”作为管理机构来确定收件人,则只需遍历“选择”中的每个单元格并即时对其进行修改。

Option Explicit
Public Const dom As String = "@xyzcompany.com"    

Sub rr()

    Dim r As Range, eml As String

    For Each r In Selection

        r.Parent.EnvelopeVisible = True

        'replace space with period; append domain
        eml = Replace(r.Text, Chr(32), Chr(46)) & dom

        With r.Parent.MailEnvelope.Item
            .To = eml
            .CC = vbNullString
            .BCC = vbNullString
            .Subject = "List Info"
            .attachments.Add vbNullString
            .send
        End With

    Next r

End Sub