Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.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 用VBA代码发送电子邮件_Excel_Vba_Date - Fatal编程技术网

Excel 用VBA代码发送电子邮件

Excel 用VBA代码发送电子邮件,excel,vba,date,Excel,Vba,Date,我对VBA非常熟悉&我找到了下面的代码,用于在超过单元格值时发送电子邮件。我试图更改代码,以便在空白单元格中输入日期(以便完成操作)或单元格文本在填充带有日期的单元格后从“正在进行的”变为“完成”时发送电子邮件。任何帮助都将不胜感激 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Cells.Count > 1 Then Exit Sub If Not Application.Interse

我对VBA非常熟悉&我找到了下面的代码,用于在超过单元格值时发送电子邮件。我试图更改代码,以便在空白单元格中输入日期(以便完成操作)或单元格文本在填充带有日期的单元格后从“正在进行的”变为“完成”时发送电子邮件。任何帮助都将不胜感激

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

这是为了让您了解事物是如何工作的:

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

在单元格C2中输入
=IFERROR(如果(第(B2)天)0,“已完成”、“正在进行”和“无效日期”)
,如下所示:

输入单元格B2的日期(或任何内容),查看状态如何更改:

现在,在图纸模块中插入以下代码:

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
当您在单元格B2中输入日期并在单元格C2中将值更改为“已完成”时,它将调用您的sub

编辑:

如果要对一系列单元格执行此操作,可以使用以下选项:

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

因此,文本
Complete
将列为
K