以VBA代码发送电子邮件

时间:2017-06-08 15:09:09

标签: excel vba date

我对VBA&amp; amp;我发现以下代码用于在超出单元格值时发送电子邮件。我正在尝试更改代码,以便在将日期输入空白单元格(以便完成操作)或单元格文本从“正在进行”变为“<时发送电子邮件强大>完成“跟随具有日期的单元格的人口。任何帮助将不胜感激。

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
        If Not Application.Intersect(Range("J1:J3000"), Target) Is Nothing Then
            If IsNumeric(Target.Value) And Target.Value > 1 Then
                Call Mail_small_Text_Outlook
            End If
        End If
    End If
End Sub

1 个答案:

答案 0 :(得分:0)

这是为了让您了解事情是如何运作的:

假设日期在单元格B2中,状态在单元格C2中。

输入=IFERROR(IF(DAY(B2)<>0,"Completed","Ongoing"),"Invalid Date")到Cell C2,如下所示:

enter image description here

在Cell B2中输入日期(或任何内容),看看状态如何变化:

enter image description here

enter image description here

现在,在工作表模块中插入以下代码:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
    If Not Application.Intersect(Range("B2"), Target) Is Nothing Then
        If Range("C2").Value = "Completed" Then
            Call Mail_small_Text_Outlook
        End If
    End If
End Sub

当您向Cell B2输入日期并将值更改为&#34;已完成&#34;在Cell C2中,它会调用你的子。

修改

如果您想对一系列单元格执行此操作,可以使用以下内容:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
    If Not Application.Intersect(Range("B2:B200"), Target) Is Nothing Then
        If Target.Offset(0, 1).Value = "Completed" Then
            Call Mail_small_Text_Outlook
        End If
    End If
End Sub