我写了一个代码,它弹出错误"For without next"。请帮我纠正这个错误。
我计划向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 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º使用Option Explicit
可以帮助你更好地编写代码。
2º声明变量。
3º设置值
按此顺序…
始终关闭loops
,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