如何使用excel VBA发送电子邮件
我的数据包含在A列到H列中。A列中的数据是电子邮件地址。我在另一个牢房里打了个复选框。我想要的是,当我勾选复选框时,它将继续向最后一行A列中的电子邮件帐户发送电子邮件。但下面的代码仅适用于单元格A1如何使用excel VBA发送电子邮件,excel,vba,Excel,Vba,我的数据包含在A列到H列中。A列中的数据是电子邮件地址。我在另一个牢房里打了个复选框。我想要的是,当我勾选复选框时,它将继续向最后一行A列中的电子邮件帐户发送电子邮件。但下面的代码仅适用于单元格A1 Private Sub CheckBox1_Click() Dim Email As String Row = 1 Email = Sheet1.Cells(Row, 1) Do Until Sheet1.Cells(Row, 1) = "" Ro
Private Sub CheckBox1_Click()
Dim Email As String
Row = 1
Email = Sheet1.Cells(Row, 1)
Do Until Sheet1.Cells(Row, 1) = ""
Row = Row + 1
Loop
Dim OutApp As Object, OutMail As Object
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
With OutMail
.To = Email
.Subject = score
.HTMLBody = "This is a contain of Email Message"
.Send
End With
On Error GoTo 0
Set OutMail = Nothing
End Sub
在下面的部分中,您尝试获取最后一行,然后从该单元格获取电子邮件:
Row = 1
Email = Sheet1.Cells(Row, 1)
Do Until Sheet1.Cells(Row, 1) = ""
Row = Row + 1
Loop
您从第一行获取电子邮件
,然后在Do-Until
循环中检查最后一行,但不修改电子邮件
变量
解析:无需循环来查找a列中最后一行的有效电子邮件地址,您只需使用以下行即可找到该行:
Dim LastRow As Long
' get last row with data in Column A (don't skip blank cells in the middle)
LastRow = Sheet1.Range("A1").End(xlDown).Row
Email = Sheet1.Range("A" & LastRow).Value
您的其余代码工作正常。在下面的部分中,您尝试获取最后一行,然后从该单元格获取电子邮件:
Row = 1
Email = Sheet1.Cells(Row, 1)
Do Until Sheet1.Cells(Row, 1) = ""
Row = Row + 1
Loop
您从第一行获取电子邮件
,然后在Do-Until
循环中检查最后一行,但不修改电子邮件
变量
解析:无需循环来查找a列中最后一行的有效电子邮件地址,您只需使用以下行即可找到该行:
Dim LastRow As Long
' get last row with data in Column A (don't skip blank cells in the middle)
LastRow = Sheet1.Range("A1").End(xlDown).Row
Email = Sheet1.Range("A" & LastRow).Value
您的其余代码工作正常。我猜您弄乱了语句的顺序:首先需要
执行直到…循环
以查找最后一行,然后才分配电子邮件=…
。您当前的代码只是无条件地从R1C1中拾取电子邮件。我猜您弄乱了语句的顺序:首先,您需要执行直到…循环
以查找最后一行,然后才分配电子邮件=…
。您当前的代码只是无条件地从R1C1中选取电子邮件。尊敬的专家,非常感谢您的知识sharing@taufik请标记为答案(点击我答案旁边的V)亲爱的专家们,非常感谢你们的知识sharing@taufik请标记为答案(单击我答案旁边的V)