我正在尝试在Excel中构建一个宏,它允许我发送包含来自活动行内容的电子邮件(例如,单击一行,选择其所有内容)。我需要从该行的特定单元格中接收电子邮件,并将其分配给“发送电子邮件到”字段。 “主题”字段应具有标题,并在其末尾添加来自特定单元格(在选定行上)的数据。在正文中,我需要包含选定行的内容。在每个选定单元格的内容之前,我需要输入标题。我可以直接通过Excel发送电子邮件,还是可以通过打开Outlook并使用宏准备好所有数据来发送电子邮件?
以下是我需要的内容(显示在电子表格中):
FirstName LastName PhoneNumber
Dan Daniels 123
Jim Jameson 321
如果第二行是选定的行。电子邮件应如下所示:
To: email@email.com
Subject: Random text - Dan Daniels
Body:
Hello,
FirstName: Dan
LastName: Daniels
PhoneNumber: 123
有什么建议我应该如何开始构建这个宏?谢谢!!!
UPDATE!
以下是我修改过的代码并给出了编译错误:
Sub SendMail()
Dim OutlookApp As Object: Set OutlookApp = CreateObject("Outlook.Application")
Dim var As Variant: var = Selection.Value
Set MyMail = OutlookApp.CreateItem(0)
With MyMail
.To = var(1, 35)
.Subject = "Email for Random Text Text Text Here -" & " " & var(1, 17) & " " & var(1, 18)
.body = "This is an email informing you that random text aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" & vbNewLine & vbNewLine & "Created by: " & var(1, 4) & vbNewLine & "Date Information Posted: " & var(1, 6) & vbNewLine & "Random Data One Showing: " & var(1, 28) & vbNewLine & "Another Random Data: " & var(1, 29) & vbNewLine & "Requester Random First Name: " & var(1, 13) & vbNewLine & "Requester Random Last Name: " & var(1, 14) & vbNewLine & "Requester Random Here E-mail: " & var(1, 15) & vbNewLine & "Requester Random Phone Number: " & var(1, 16) & vbNewLine & "Person's Random First Name: " & var(1, 17) & vbNewLine & "Person's Random Last Name: " & var(1, 18) & vbNewLine & "Person's Random Location: " & var(1, 21) & vbNewLine & "Person's Random Occupation: " & var(1, 22) & vbNewLine & "Person's Random Hometown: " & var(1, 23) & vbNewLine & "Where he is located: " & var(1, 24) & vbNewLine & "PErson's Email Address: " & var(1, 19) & vbNewLine & "Number of items requested: " & var(1, 8) & vbNewLine & "Requested Items Number: " & var(1, 31) & vbNewLine & "Name of Item: " & var(1, 22) & vbNewLine & vbNewLine & "This is a random text I need to add at the end of the mail, text being quite looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooog random text random text random text random text random text random text"
End With
MyMail.send
End Sub
列中的数据只是简单的字符,名称,数字或电子邮件。实际上我有35列,但只需要上面的列。谢谢!
答案 0 :(得分:1)
好吧,我会推荐第三栏,附上该人的电子邮件。
我们假设您已同意添加该内容。您的数据看起来像:
FirstName LastName PhoneNumber Email
Dan Daniels 123 Dan.Daniels@HisCompany.com
我们将创建一个Outlook应用程序对象(使用后期绑定)
Dim OutlookApp As Object: Set OutlookApp = CreateObject("Outlook.Application")
现在我们需要填写我们将要创建的MyMail对象的属性。我们使用选择而不是活动单元格。
Dim var as variant: var = selection.value
Set MyMail = OutlookApp.CreateItem(0)
立即填充属性:
With MyMail
.To = var(1,4)
.Subject = "Random Text" &" "& var(1,1) & " " & var(1,2)
.body = "Hello," & vbNewLine & "First name: " & var(1, 1) & vbNewLine & "Last Name: " & var(1, 1) & vbNewLine & "Phone number: " & var(1, 2)
End With
我们将使用MyMail对象的send方法发送它。
MyMail.send
修改:这里是完整子代码。我测试了它并且它有效。
Sub SendMail()
Dim OutlookApp As Object: Set OutlookApp = CreateObject("Outlook.Application")
Dim var As Variant: var = Selection.Value
Set MyMail = OutlookApp.CreateItem(0)
With MyMail
.To = var(1, 4)
.Subject = "Random Text" & " " & var(1, 1) & " " & var(1, 2)
.body = "Hello," & vbNewLine & "First name: " & var(1, 1) & vbNewLine & "Last Name: " & var(1, 2) & vbNewLine & "Phone number: " & var(1, 3)
End With
MyMail.send
End Sub
前提条件:
选择运行宏之前的行。这是我的数据预览:
我的Outlook发件箱:
Edit1 :这里有正确的.body
属性:
.body = "This is an email informing you that random text aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" & vbNewLine & vbNewLine & "Created by: " & Var(1, 4) & vbNewLine & "Date Information Posted: " & Var(1, 6) & vbNewLine & "Random Data One Showing: " & Var(1, 28) & vbNewLine & "Another Random Data: " & Var(1, 29) & vbNewLine & _
"Requester Random First Name: " & Var(1, 13) & vbNewLine & "Requester Random Last Name: " & Var(1, 14) & vbNewLine & "Requester Random Here E-mail: " & Var(1, 15) & vbNewLine & "Requester Random Phone Number: " & Var(1, 16) & vbNewLine & "Person's Random First Name: " & Var(1, 17) & vbNewLine & "Person's Random Last Name: " & Var(1, 18) & vbNewLine & "Person's Random Location: " & Var(1, 21) & vbNewLine & "Person's Random Occupation: " & _
Var(1, 22) & vbNewLine & "Person's Random Hometown: " & Var(1, 23) & vbNewLine & "Where he is located: " & Var(1, 24) & vbNewLine & "PErson's Email Address: " & Var(1, 19) & vbNewLine & "Number of items requested: " & Var(1, 8) & vbNewLine & "Requested Items Number: " & Var(1, 31) & vbNewLine & "Name of Item: " & Var(1, 22) & vbNewLine & vbNewLine & _
"This is a random text I need to add at the end of the mail, text being quite looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooog random text random text random text random text random text random text"