Excel I';我不熟悉VBA和I';我犯了一些错误
我写了一个代码,它弹出错误“没有下一步”。请帮我纠正错误 我计划向1000名用户发送大量电子邮件 我的尝试:Excel I';我不熟悉VBA和I';我犯了一些错误,excel,vba,email,Excel,Vba,Email,我写了一个代码,它弹出错误“没有下一步”。请帮我纠正错误 我计划向1000名用户发送大量电子邮件 我的尝试: Sub Send_Emails() Dim sh As Worksheet Set sh = ThisWorkbook("Send_Emails") Dim OA As Object Dim msg As Object Set OA = CreateObject("Outlook.application") Dim Last_Row
Sub Send_Emails()
Dim sh As Worksheet
Set sh = ThisWorkbook("Send_Emails")
Dim OA As Object
Dim msg As Object
Set OA = CreateObject("Outlook.application")
Dim Last_Row As Integer
Last_Row = Application.CountA(sh.Range("A:A"))
For i = 2 To Last_Row
Set msg = OA.CreateItem(0)
msg.To = sh.Range("A" & i).Value
msg.CC = sh.Range("B" & i).Value
msg.Subject = sh.Range("C" & i).Value
msg.Body = sh.Range("D" & i).Value
End Sub
一些建议: 1º使用
选项显式
它将帮助您更好地编码。
2º声明变量。
3º设置值 按照这个顺序 始终关闭
循环
,whiles
,if
状态网等。。作为第一件事,很容易忘记
这应该起作用:
Option Explicit
Sub Send_Emails()
Dim sh As Worksheet, OA As Object
Dim msg As Object, Last_Row As Integer
Last_Row = Application.CountA(sh.Range("A:A"))
Set sh = ThisWorkbook.Worksheets("Send_Emails")
Set OA = CreateObject("Outlook.application")
For i = 2 To Last_Row
Set msg = OA.CreateItem(0)
msg.To = sh.Range("A" & i).Value
msg.CC = sh.Range("B" & i).Value
msg.Subject = sh.Range("C" & i).Value
msg.Body = sh.Range("D" & i).Value
Next i
End Sub
在您的行下
msg.Body=sh.Range(“D”和i).Value
putNext i
。下一步告诉代码循环结束的位置。Set sh=thiswoolk.Worksheets(“发送电子邮件”)
练习代码缩进