2016-04-26 57 views
0
發送項目的發件人郵件

我得到了下面的Excel中運行時錯誤VBA代碼刪除發件人郵件如何刪除從Outlook

 Sub Worksheet_Change(ByVal Target As Range) 
     Dim PriorVal As String 
' For the worksheet AuditLog   
     With Sheets("AuditLog") 
     If Selection(1).Value = "" Then 
       PriorVal = "Blank" 
      Else 
       PriorVal = Selection(1).Value 
      End If 
     Set OutlookApp = CreateObject("Outlook.Application") 
     Set OlObjects = OutlookApp.GetNamespace("MAPI") 
     Set newmsg = OutlookApp.CreateItem(olMailItem) 
     'add recipients 
     newmsg.Recipients.Add ("add your mail id") 
     'add subject 
     newmsg.Subject = ("AuditLog has a violator") '"," Environ("UserName"), Environ("ComputerName"), & sh.Name " 
     'add body 
     newmsg.Body = Application.UserName & " has made changes to the AuditLog _ tab at cell position " & Target(1).Address & ", " & Target(1).Value 
     newmsg.Display 'display 
     newmsg.Send 'send message 
     newmsg.DeleteAfterSubmit = True 
     End With 
      Set newmsg = Nothing:  Set OutlookApp = Nothing: 
     End Sub 

回答

2
newmsg.Send 'send message 
newmsg.DeleteAfterSubmit = True 

開關這些圍繞

newmsg.DeleteAfterSubmit = True 
newmsg.Send 'send message 
+0

你好Mrbungle,我已經嘗試過,但仍然可以在發送的項目下有一個例外的郵件。謝謝! – USA

1

除了@mrbungle寫的內容,作爲一個經驗法則,一旦你調用Send,唯一允許的操作就是對消息進行解引用 - 它現在屬於假脫機程序。

也沒有理由調用顯示器(無模式),然後在消息仍顯示時發送。如果您正在顯示消息,您是否不希望用戶點擊發送按鈕?

+0

嗨德米特里,我想郵件應該發送誰違反審計日誌選項卡,但不希望他知道有一個郵件觸發他的主管,因爲痕跡將在已發送的項目下可用。 – USA

+0

不要調用Display,將DeleteAfterSubmit屬性設置爲true,調用Send。 –

+0

我改變了建議的代碼,你是對的。 – USA