2017-06-08 228 views
0

我很基本與VBA &我發現下面的代碼發送電子郵件時超過單元格的值。我試圖修改代碼,以便在將日期輸入到空白單元格(以便完成操作)或單元格文本從「正在進行」到「完成」有日期的細胞的種羣。任何幫助將非常感激。發送電子郵件在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 
+0

所以文'Complete'將列**'K' **? – ManishChristian

回答

0

這是給你一個觀點是如何工作的:

假設日期是在單元格B2和狀態是在小區C2。

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

enter image description here

輸入日期(或任何)到小區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 

當您在單元格C2中輸入日期到單元格B2並將值更改爲「已完成」時,它將調用您的子。

編輯:

如果你想爲一個單元格範圍內,你可以用下面這樣做:

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