[英]Sending mass emails from Excel list using VBA
我正在嘗試使用Excel中的VBA腳本自動執行手動過程。 我有一個電子表格,其中包含4個列表:電子郵件地址,主題,消息,簽名。 我是VBA的新手,想按一個命令按鈕,該按鈕將自動為列表創建Outlook電子郵件。
在下面的示例中,我也列出了3個人,我也想通過單擊按鈕3發送電子郵件,我也希望這些電子郵件放在草稿中,並且不會自動發送,因為需要事先檢查。
下面是我的代碼
Public Sub SendOutlookEmails()
'Microsoft Outlook XX.X Object Library is required to run this code
'Variable declaration
Dim objOutlook As Outlook.Application
Dim objMail As Outlook.MailItem
Dim lCounter As Long
'Set objects
Set objOutlook = Outlook.Application
'Read details from Excel sheet and send emails
For lCounter = 6 To 8
'Create a new email item
Set objMail = objOutlook.CreateItem(olMailItem)
'To
objMail.To = Sheet1.Range("A" & lCounter).Value
'Subject
objMail.Subject = Sheet1.Range("C" & lCounter).Value
'Email Body
objMail.Body = Sheet1.Range("D" & lCounter).Value
'Send email
'objMail.Send
'Close the object
'Set objMail = Nothing
End Sub
任何幫助或工作示例將非常有幫助。 謝謝
用戶D,我想說先使用With語句以提高速度和可讀性。 然后,有一個Save方法將在當前NameSpace中保存為草稿(您默認電子郵件帳戶的Draft文件夾-因為您的客戶端上可能有多個電子郵件帳戶,並且每個帳戶都被視為自己的NameSpace)。 如果使用.Send方法,則使用.Display方法時,它也會發送,但不會發送,但會在屏幕上彈出(並在Taskmgr中顯示為另一個Task)。
Sub DraftEmails()
Dim oApp As New Outlook.Application
Dim oM As Outlook.MailItem
Set oM = oApp.CreateItem(olMailItem)
With oM
.To = "someone@somewhere.somedomain"
.Save
End With
End Sub
另外,為了更加動態,我會考慮結合使用UsedRange.Columns和Find方法。 這樣一來,您可以說,在A列中找到其中有“ to”的單元格,然后可以從那里向下進行迭代。 因此,假設您調整了列,則可以捕獲該列,並且無需調整代碼。
讓我們知道這是否滿足您的需求,或者我們可以提供的其他指導。
丹尼,
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.