我对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
答案 0 :(得分:0)
这是为了让您了解事情是如何运作的:
假设日期在单元格B2中,状态在单元格C2中。
输入=IFERROR(IF(DAY(B2)<>0,"Completed","Ongoing"),"Invalid Date")
到Cell C2,如下所示:
在Cell 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
当您向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