我有一个名为“测试”的工作表,其中A列是电子邮件地址列表。 我想向所有地址发送电子邮件,并使用以下代码
Sub EmailSend()
Dim objOutlook As Object
Dim objMail As Object
Dim i As Integer
Set objOutlook = CreateObject("Outlook.Application")
Set objMail = objOutlook.CreateItem(0)
For i = 1 To 10
With objMail
.to = Sheets("Test").Range("A" & i).Value
.Subject = "hi"
.body = _
"Hi " & Sheets("Test").Range("B" & i) & Sheets("links").Range("G" & 1)
.send
End With
Next i
End Sub
不幸的是,该makro只向A1中的地址发送了一封电子邮件,然后在行.to = Sheets("Test").Range("A" & i).Value
中出现错误,错误消息显示:元素已移动或删除。
知道我做错了什么吗?
答案 0 :(得分:2)
我猜您尝试发送的第二行可能有错误。因此,请使用下面的代码,并检查“立即”窗口中显示的内容。
更新:
我在CreateItem
循环中添加了For
行,并为每个邮件对其进行了重置。可能是错误消息所抱怨的邮件项目。
Sub EmailSend()
Dim objOutlook As Object
Dim objMail As Object
Dim i As Integer
Set objOutlook = CreateObject("Outlook.Application")
For i = 1 To 10
Set objMail = objOutlook.CreateItem(0)
With objMail
Debug.Print Sheets("Test").Range("A" & i).Value
.to = Sheets("Test").Range("A" & i).Value
.Subject = "hi"
.body = _
"Hi " & Sheets("Test").Range("B" & i) & Sheets("links").Range("G" & 1)
.display
'.send
End With
Set objMail = Nothing
Next i
End Sub