Excelmacros用活动行的信息发送电子邮件

我试图开始在Excel中创build一个macros,允许我发送带有活动行内容的电子邮件(例如,单击一行,select所有内容)。 我需要从该行上的特定单元格中接收电子邮件,并将其分配给“发送电子邮件到”字段。 主题字段应该有一个标题,并在末尾添加特定单元格的数据(在选定的行上)。 在正文中,我需要包含选定行的内容。 在每个选定单元格的内容之前,我需要input一个标题。 我可以直接通过Excel发送电子邮件,还是至less可以通过打开Outlook发送电子邮件并使用macros准备好所有数据?

以下是我需要的(显示在电子表格中):

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 

任何build议我应该如何开始build立这个macros? 谢谢!!!

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列,但只需要上面的列。 谢谢!

那么,我会build议第三栏的人的电子邮件。

假设你已经同意补充。 你的数据看起来像这样:

 FirstName LastName PhoneNumber Email Dan Daniels 123 Dan.Daniels@HisCompany.com 

我们将创build一个Outlook应用程序对象(使用后期绑定)

 Dim OutlookApp As Object: Set OutlookApp = CreateObject("Outlook.Application") 

现在我们需要填写我们要在Outlook中创build的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 

编辑 :这是完整的子代码。 我testing了它,它工作。

 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 

前提条件:

运行macros之前select行。 以下是我的数据预览:

在这里输入图像说明

我的Outlook发件箱:

在这里输入图像说明

编辑1 :这是正确的.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"