Excel 用VBA代码发送电子邮件
我对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
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
?