Note: The other languages of the website are Google-translated. Back to English

當工作簿保存在Excel中時,如何​​通過Outlook發送電子郵件?

本文討論的是在Excel中保存特定工作簿時通過Outlook發送電子郵件。 請按照本教程所示進行操作。

使用VBA代碼保存工作簿時,通過Outlook發送電子郵件


使用VBA代碼保存工作簿時,通過Outlook發送電子郵件

若要在工作簿保存在Excel中時通過Outlook發送電子郵件,請執行以下操作。

1.請首先將工作簿另存為Excel Macro-Enabled Workbook。 請點擊 文件 > 另存為。 在 另存為 對話框中,選擇一個文件夾來保存工作簿,在“文件名”框中將其命名,然後選擇 Excel啟用宏的工作簿 來自 保存類型 下拉列表,然後單擊 節省 按鈕。 看截圖:

2.打開剛才保存的Excel Macro-Enabled Workbook,按 其他 + F11 同時打開 Microsoft Visual Basic for Applications 窗口。

2。 在裡面 Microsoft Visual Basic for Applications 窗口,請雙擊 的ThisWorkbook 在左側欄中,然後將以下VBA代碼複製並粘貼到 的ThisWorkbook 代碼窗口。 看截圖:

VBA代碼:保存工作簿時發送電子郵件

Private Sub Workbook_AfterSave(ByVal Success As Boolean)
'Updated by Extendoffice 20181102
    Dim xOutApp As Object
    Dim xMailItem As Object
    Dim xName As String
    On Error Resume Next
    Set xOutApp = CreateObject("Outlook.Application")
    Set xMailItem = xOutApp.CreateItem(0)
    xName = ActiveWorkbook.FullName
    With xMailItem
        .To = "Email Address"
        .CC = ""
        .Subject = "The workbook has been saved"
        .Body = "Hi," & Chr(13) & Chr(13) & "File is now updated."
        .Attachments.Add xName
        .Display
       '.send
    End With
    Set xMailItem = Nothing
    Set xOutApp = Nothing
End Sub

備註:請更換 電子郵件 收件人電子郵件地址在一行 .To =“電子郵件地址”根據需要在VBA代碼中更改抄送,主題以及正文字段。

3。 按 其他 + Q 同時關閉按鍵 Microsoft Visual Basic for Applications 窗口。

從現在開始,當您更新並保存工作簿時,將自動創建一封電子郵件,其中附有更新的工作簿。 請點擊 發送 按鈕發送電子郵件。 看截圖:

備註:僅當您將Outlook用作電子郵件程序時,VBA代碼才起作用。


相關文章:


最佳辦公效率工具

Kutools for Excel 解決了你的大部分問題,並將你的生產力提高了 80%

  • 重用: 快速插入 複雜的公式,圖表 以及您以前使用過的任何東西; 加密單元 帶密碼 創建郵件列表 並發送電子郵件...
  • 超級公式欄 (輕鬆編輯多行文本和公式); 閱讀版式 (輕鬆讀取和編輯大量單元格); 粘貼到過濾範圍...
  • 合併單元格/行/列 不會丟失數據; 拆分單元格內容; 合併重複的行/列...防止細胞重複; 比較範圍...
  • 選擇重複或唯一 行; 選擇空白行 (所有單元格都是空的); 超級查找和模糊查找 在許多工作簿中; 隨機選擇...
  • 確切的副本 多個單元格,無需更改公式參考; 自動創建參考 到多張紙; 插入項目符號,複選框等...
  • 提取文字,添加文本,按位置刪除, 刪除空間; 創建和打印分頁小計; 在單元格內容和註釋之間轉換...
  • 超級濾鏡 (將過濾方案保存並應用於其他工作表); 高級排序 按月/週/日,頻率及更多; 特殊過濾器 用粗體,斜體...
  • 結合工作簿和工作表; 根據關鍵列合併表; 將數據分割成多個工作表; 批量轉換xls,xlsx和PDF...
  • 超過 300 項強大的功能. 支持 Office / Excel 2007-2021 和 365。支持所有語言。 在您的企業或組織中輕鬆部署。 完整功能 30 天免費試用。 60 天退款保證。
kte選項卡201905

Office選項卡為Office帶來了選項卡式界面,使您的工作更加輕鬆

  • 在Word,Excel,PowerPoint中啟用選項卡式編輯和閱讀,發布者,Access,Visio和Project。
  • 在同一窗口的新選項卡中而不是在新窗口中打開並創建多個文檔。
  • 將您的工作效率提高 50%,每天為您減少數百次鼠標點擊!
officetab底部
按評論排序
留言 (17)
還沒有評分。 成為第一位評論!
網站主持人對此評論進行了最小化
如何根據日期範圍在 VBA 中自動發送電子郵件通知,而無需查看彈出的安全權限以允許 VBA 發送電子郵件。
網站主持人對此評論進行了最小化
格拉西亞斯。 諮詢:utilizando esta misma rutina, como podría enviar el correo a un correo específico dependiendo el valor de otra celda?
網站主持人對此評論進行了最小化
親愛的,我想問一下如何將功能鏈接附加到服務器上的某個文件夾,如果我粘貼鏈接,它會像純文本一樣出現在工作簿中,所以在收到的電子郵件中不起作用,我該怎麼辦把它變成鏈接,讓收件人可以點擊它?
我想使用這種方式來代替發送隨附的 excel 文件。
感謝您的建議
網站主持人對此評論進行了最小化
羅伯特,
抱歉幫不上忙,歡迎在我們的論壇上發布有關 Excel 的任何問題: https://www.extendoffice.com/forum.html. 您將從我們的專業人士或其他 Excel 粉絲那裡獲得更多 Excel 支持。
網站主持人對此評論進行了最小化
我把它放在電子郵件的正文中,它對我有用......
"文件:///Z:\dir1\dir2\dir3\Test1.xlsm"
網站主持人對此評論進行了最小化
嗨,好文章! 我一直試圖實現的一件事是將工作簿的當前狀態附加到電子郵件中。

目前,它只發送文件的原始狀態,不包括用戶所做的任何更改。

關於如何使用宏實現這一點的任何想法?
網站主持人對此評論進行了最小化
嗨克里斯,
代碼已更新,問題已解決,請試一試。 感謝您的評論。
網站主持人對此評論進行了最小化
嗨克里斯,

我偶然遇到了同樣的問題。
目前,這些代碼用於“beforesave”模塊中。
這意味著電子郵件將發送之前保存的電子表格。

還有另一個模塊“aftersave”。
我在這個模塊中應用了代碼,它就像一個魅力。
網站主持人對此評論進行了最小化
如何處理 Office 365 文檔。 它是自動保存的。
網站主持人對此評論進行了最小化
有沒有辦法讓自動電子郵件自動加密?
網站主持人對此評論進行了最小化
您好邁克,
抱歉無法幫助解決這個問題。 感謝您的評論。
網站主持人對此評論進行了最小化
你好! 非常感謝這個指南 :-) 我想在這個代碼中做更多的事情 - 根據國家/地區發送電子郵件。 這意味著我必須使用 if 和 select 創建命令。 對? 我已經從電子郵件中刪除了附件。 我想將帶有路徑的鏈接添加到文件夾中。 但是當宏運行時,命令無效:-(
我感謝每個幫助如何添加它。
網站主持人對此評論進行了最小化
您好 - 我如何在電子郵件“抄送”字段中包含單元格數據?
網站主持人對此評論進行了最小化
嗨布倫特,
假設您想在電子郵件“cc”字段中包含單元格 a7 中的值,請嘗試以下 VBA。

Private Sub Workbook_AfterSave(ByVal Success As Boolean)

'更新者 Extendoffice 20200628

將 xOutApp 調暗為對象

將 xMailItem 調暗為對象

將 xName 調暗為字符串

在錯誤恢復下一頁

設置 xOutApp = CreateObject("Outlook.Application")

設置 xMailItem = xOutApp.CreateItem(0)

xName = ActiveWorkbook.FullName

使用 xMailItem

.To =“電子郵件地址”

.CC = Range("a7").Value


.Subject = "工作簿已保存"

.Body = "Hi," & Chr(13) & Chr(13) & "文件現已更新。"

.Attachments.Add xName

。顯示

'。發送

結束

設置 xMailItem = 無

設置 xOutApp = 無

END SUB
網站主持人對此評論進行了最小化
親愛的大家,誰能幫幫我,我是VBA編碼的新手,我做了一些修改,但是如果工作簿被保存,我怎麼能發送電子郵件,如果用戶名不同,比如用戶名該站是 glade2 如果工作簿已保存則發送電子郵件,否則不發送。

非常感謝你的支持
網站主持人對此評論進行了最小化
嗨弗洛林,
沒明白你的意思。 你的用戶名代表什麼?
網站主持人對此評論進行了最小化
嗨,水晶,謝謝您的回复,usernane 是環境 usernane,我已經做到了,我確實使用了 if 函數並退出子。
謝謝你這麼多。
這裡還沒有評論
留下你的意見
以訪客身份發帖
×
評價此帖子:
0   字符
推薦地點

關注我們

版權所有©2009 - 萬維網。extendoffice.com。 | 版權所有。 供電 ExtendOffice。 |
Microsoft和Office徽標是Microsoft Corporation在美國和/或其他國家的商標或註冊商標。
受Sectigo SSL保護