Excel 发送工作表列中包含地址的电子邮件

Excel 发送工作表列中包含地址的电子邮件,excel,vba,outlook,Excel,Vba,Outlook,我有一张名为“测试”的表格,其中a列是电子邮件地址列表。 我想向所有地址发送电子邮件 Sub-EmailSend() 将对象视为对象 Dim objMail作为对象 作为整数的Dim i 设置objOutlook=CreateObject(“Outlook.Application”) 设置objMail=objOutlook.CreateItem(0) 对于i=1到10 用objMail .to=板材(“测试”).范围(“A”和i).值 .Subject=“你好” .body=\u “Hi”和图

我有一张名为“测试”的表格,其中a列是电子邮件地址列表。
我想向所有地址发送电子邮件

Sub-EmailSend()
将对象视为对象
Dim objMail作为对象
作为整数的Dim i
设置objOutlook=CreateObject(“Outlook.Application”)
设置objMail=objOutlook.CreateItem(0)
对于i=1到10
用objMail
.to=板材(“测试”).范围(“A”和i).值
.Subject=“你好”
.body=\u
“Hi”和图纸(“测试”)。范围(“B”和i)和图纸(“链接”)。范围(“G”和1)
.发送
以
接下来我
端接头
宏向A1中的地址发送电子邮件,然后发送错误

元素已被移动或删除

出现在行中

.to = Sheets("Test").Range("A" & i).Value

我猜您尝试发送的第二行可能有错误。因此,请使用下面的代码并检查它在即时窗口中显示的内容

更新: 我已经在
For
循环中添加了
CreateItem
行,并且正在为每封邮件重置它。可能是错误消息所抱怨的邮件项目

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

错误消息是怎么说的?@StavrosJon表示元素已被移动。这对我也适用。。。将
.send
更改为
.display
并查看您发送的电子邮件实际包含的内容。@rohrl77做到了,它包含了我想要的所有内容,完全符合我的要求。此外,对于第一个地址,它确实有效,并且电子邮件发送正确。它正确地显示了所有内容,但当我将代码更改为
时,您的代码仍然会给我相同的错误消息。发送
我更新了我的答案。。。尝试新代码。请参阅更新中的说明。