excel - 我是 VBA 新手,遇到了一些错误
问题描述
我写了一个代码,它弹出错误“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
statemenet 等。首先,很容易忘记。
这应该有效:
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
推荐阅读
- php - 存储更改并稍后检索会话表单数据
- angular - 使用 Angular 指定 Google Places 自动完成的起始位置
- reactjs - 使用回调将按钮向下传递给组件
- wpf - ListView 组标题显示多次
- php - php 和 django 与 apache 站点之间的冲突 - 可用
- json - 与 Lambda 代理集成的 AWS API Gateway 失败
- azure - 应用程序网关将 URL 路由到自定义端口
- python - 如何在 Pandas 数据框中将异常时间戳转换为日期时间
- python - Pandas Dataframe:过滤使用列定义的条件
- node.js - sequelize include,连接两个关联表