通过 excel vba 发送邮件时在 outlook 中选择帐户
choose account in outlook when send mail via excel vba
我想在 excel 中从 VBA 的 outlook 中的特定帐户发送邮件,我坚持使用我的代码,我遍历了论坛,但它仍然不起作用
我给你看我的代码,如果有人能帮助我,那就太好了
Sub SendMail()
Dim objOutlook As Object
Dim objMail As Object
Dim ws As Worksheet
Set objOutlook = CreateObject("Outlook.Application")
Set ws = ActiveSheet
Dim signature As String
Dim LstRow As Long
LstRow = ws.Cells(Rows.Count, 1).End(xlUp).Row
Dim oAccount As Outlook.Account
For Each oAccount In Outlook.Application.Session.Accounts
If oAccount = "mymail@server.com" Then
For Each cell In ws.Range("A4:A" & LstRow)
Set objMail = objOutlook.CreateItem(0)
signature = objMail.Body
With objMail
.To = cell.Value
.Subject = cell.Offset(0, 1).Value
.Body = cell.Offset(0, 2).Value & vbNewLine & signature
.Attachments.Add cell.Offset(0, 3).Value
.DeferredDeliveryTime = "15/03/2018 10:00:00 PM"
.SendUsingAccount = oAccount
.send
End With
Set objMail = Nothing
Next cell
Else
End If
Next
Set ws = Nothing
Set objOutlook = Nothing
End Sub
解决办法就是把Set放在.SendUsingAccount前面
Set objMail = objOutlook.CreateItem(0)
signature = objMail.Body
With objMail
.To = cell.Value
.Subject = cell.Offset(0, 1).Value
.Body = cell.Offset(0, 2).Value & vbNewLine & signature
.Attachments.Add cell.Offset(0, 3).Value
.DeferredDeliveryTime = "15/03/2018 10:00:00 PM" 'need to comment here to run better
Set .SendUsingAccount = oAccount
.send
End With
还要感谢 Maddy,我在 deferredDeliveryTime 后发表了评论,它通过 oAccount 进行得很顺利
我想在 excel 中从 VBA 的 outlook 中的特定帐户发送邮件,我坚持使用我的代码,我遍历了论坛,但它仍然不起作用
我给你看我的代码,如果有人能帮助我,那就太好了
Sub SendMail()
Dim objOutlook As Object
Dim objMail As Object
Dim ws As Worksheet
Set objOutlook = CreateObject("Outlook.Application")
Set ws = ActiveSheet
Dim signature As String
Dim LstRow As Long
LstRow = ws.Cells(Rows.Count, 1).End(xlUp).Row
Dim oAccount As Outlook.Account
For Each oAccount In Outlook.Application.Session.Accounts
If oAccount = "mymail@server.com" Then
For Each cell In ws.Range("A4:A" & LstRow)
Set objMail = objOutlook.CreateItem(0)
signature = objMail.Body
With objMail
.To = cell.Value
.Subject = cell.Offset(0, 1).Value
.Body = cell.Offset(0, 2).Value & vbNewLine & signature
.Attachments.Add cell.Offset(0, 3).Value
.DeferredDeliveryTime = "15/03/2018 10:00:00 PM"
.SendUsingAccount = oAccount
.send
End With
Set objMail = Nothing
Next cell
Else
End If
Next
Set ws = Nothing
Set objOutlook = Nothing
End Sub
解决办法就是把Set放在.SendUsingAccount前面
Set objMail = objOutlook.CreateItem(0)
signature = objMail.Body
With objMail
.To = cell.Value
.Subject = cell.Offset(0, 1).Value
.Body = cell.Offset(0, 2).Value & vbNewLine & signature
.Attachments.Add cell.Offset(0, 3).Value
.DeferredDeliveryTime = "15/03/2018 10:00:00 PM" 'need to comment here to run better
Set .SendUsingAccount = oAccount
.send
End With
还要感谢 Maddy,我在 deferredDeliveryTime 后发表了评论,它通过 oAccount 进行得很顺利