Excel 使用公式在特殊单元格中查找符合条件的电子邮件
我正在开发一个跟踪程序,它可以给不符合条件的人发电子邮件。我的名称反映在第19行中(Excel 使用公式在特殊单元格中查找符合条件的电子邮件,excel,email,excel-formula,vba,Excel,Email,Excel Formula,Vba,我正在开发一个跟踪程序,它可以给不符合条件的人发电子邮件。我的名称反映在第19行中(H19:AE19,具体而言;每个单元格列反映一个名称);第18行中与各自名称相关的电子邮件;以及第20行中要满足的条件(如果为空,则发送电子邮件;如果已填充,则移动到下一行) 附加信息:每个细节都嵌入了公式。每当某个下拉列表更改时,它都会更改 代码如下,我似乎无法让它工作: Sub Test1() Dim OutApp As Object Dim OutMail As Object Dim cell As Ran
H19:AE19
,具体而言;每个单元格列反映一个名称);第18行中与各自名称相关的电子邮件;以及第20行中要满足的条件(如果为空,则发送电子邮件;如果已填充,则移动到下一行)
附加信息:每个细节都嵌入了公式。每当某个下拉列表更改时,它都会更改
代码如下,我似乎无法让它工作:
Sub Test1()
Dim OutApp As Object
Dim OutMail As Object
Dim cell As Range
Application.ScreenUpdating = False
Set OutApp = CreateObject("Outlook.Application")
On Error GoTo cleanup
For Each cell In Rows(18).Cells.SpecialCells(xlCellTypeConstants)
If cell.Value Like "?*@ntrs.com" And _
LCase(cell.Offset(2).Value) = "" Then
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
With OutMail
.To = cell.Value
.Subject = "Reminder"
.Body = "Dear " & cell.Offset(1).Value _
& vbNewLine & vbNewLine & _
"Please contact us to discuss bringing " & _
"your account up to date"
.Display
.Send
End With
On Error GoTo 0
Set OutMail = Nothing
End If
Next cell
cleanup:
Set OutApp = Nothing
Application.ScreenUpdating = True
End Sub
Thanks in advance!
你说,只是一个猜测
每个细节都嵌入了公式
如果第18行中的电子邮件地址有公式,则此行不会捕捉它们:
用于第(18)行中的每个单元格。单元格。特殊单元格(xlCellTypeConstants)
将其更改为以下选项可能会解决此问题,在任何情况下都更可取,因为您稍后会根据电子邮件模式检查字符串:
For Each cell In ActiveSheet.UsedRange.Rows(18).Cells
更好的是,指定包含这些数据的工作表,即如果其名称为“myEmails”;成功
请告诉我们您的代码在哪里不起作用,以及它是如何失败的。@DavidG嗨,David!谢谢你的回复。按照A.S.H.的建议,它现在可以工作了。标题不是很明确。哇!它起作用了!非常感谢你!非常感谢你的帮助@马奇,不客气。很高兴这有帮助。当答案解决您的问题时,请考虑通过单击答案左上角的灰色复选标记,将其变为绿色来“接受”它:)
For Each cell In Worksheets("myEmails").UsedRange.Rows(18).Cells