我想从ex中的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
答案 0 :(得分:1)
解决方案就是将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进展顺利