Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 使用公式在特殊单元格中查找符合条件的电子邮件_Excel_Email_Excel Formula_Vba - Fatal编程技术网

Excel 使用公式在特殊单元格中查找符合条件的电子邮件

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

我正在开发一个跟踪程序,它可以给不符合条件的人发电子邮件。我的名称反映在第19行中(
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