從microsoftexcel發送電子郵件只需要幾個簡單的腳本。將此功能添加到您的電子表格中,您就可以真正提高您在Excel中所能完成的工作。
我們已經介紹了很多優秀的Excel宏,它們可以完成VBA腳本所能完成的同樣的事情,但是不需要編程知識。但是有很多高級的事情你只能用VBA來做,比如用你所有的PC信息創建一個電子表格報告。
喜歡把這個教程當作視頻看嗎?我們掩護你!
您可能希望從Microsoft Excel內部發送電子郵件的原因有很多。
也許你有每週更新文檔或電子表格的員工,並且你希望收到一封電子郵件通知,告知何時完成這些更新。或者你可能有一個電子表格的聯繫人,你想發送一封電子郵件給所有的人在一次。
您可能認為從Excel編寫電子郵件廣播腳本會很複雜。事實並非如此。
本文中的技術將利用excelvba中長期存在的一個特性,即協作數據對象(CDO)。
CDO是Windows中使用的消息傳遞組件,從操作系統的早期版本就開始了。它以前被稱為CDONTS,後來隨著windows2000和XP的出現,被“windows2000的CDO”所取代。此組件已包含在Microsoft Word或Excel中的VBA安裝中,可以使用。
使用該組件可以非常輕鬆地從帶有VBA的Windows產品中發送電子郵件。在本例中,您將使用Excel中的CDO組件發送一封電子郵件,該電子郵件將傳遞特定Excel單元格的結果。
第一步是轉到Excel開發人員選項卡。
在“開發人員”選項卡中,單擊“控件”框中的“**”,然後選擇一個命令按鈕。
將其繪製到工作表中,然後通過單擊“開發人員”功能區中的“宏”為其創建新宏。
單擊“創建”按鈕時,它將打開VBA編輯器。
通過導航到編輯器中的“工具”>;“引用”,添加對CDO庫的引用。
向下滾動列表,直到找到Microsoft CDO for Windows 2000庫。標記複選框並單擊“確定”。
單擊“確定”時,記下要粘貼腳本的函數的名稱。你以後會需要的。
為此,首先需要創建郵件對象並設置發送電子郵件所需的所有字段。
請記住,雖然許多字段是可選的,但From和To字段是必需的。
Dim CDO_Mail As ObjectDim CDO_Config As ObjectDim SMTP_Config As VariantDim strSubject As StringDim strFrom As StringDim strTo As StringDim strCc As StringDim strBcc As StringDim strBody As StringstrSubject = "Results from Excel Spreadsheet"strFrom = "[email protected]"strTo = "[email protected]"strCc = ""strBcc = ""strBody = "The total results for this quarter are: " & Str(Sheet1.Cells(2, 1))很酷的一點是,您可以創建任何字符串來定製完整的電子郵件消息,並將其分配給strBody變量。
通過使用字符串將任何Microsoft Excel工作表中的數據直接**到電子郵件中,將郵件的組件拼湊在一起,如上圖所示。
代碼的下一部分是將CDO配置為使用任何外部SMTP服務器發送電子郵件。
這個例子是通過Gmail進行的非SSL設置。CDO支持SSL,但這超出了本文的範圍。如果您需要使用SSL,Github中的這個高級代碼可以提供幫助。
Set CDO_Mail = CreateObject("CDO.Message")On Error GoTo Error_HandlingSet CDO_Config = CreateObject("CDO.Configuration")CDO_Config.Load -1Set SMTP_Config = CDO_Config.FieldsWith SMTP_Config .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 .Item("http://schemas.microsoft.com/cdo/configuration/**tpserver") = "**tp.gmail.com" .Item("http://schemas.microsoft.com/cdo/configuration/**tpauthenticate") = 1 .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "[email protected]" .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "password" .Item("http://schemas.microsoft.com/cdo/configuration/**tpserverport") = 25 .Item("http://schemas.microsoft.com/cdo/configuration/**tpusessl") = True .UpdateEnd WithWith CDO_Mail Set .Configuration = CDO_ConfigEnd With既然您已經配置了到SMTP服務器的連接以發送電子郵件,那麼您所要做的就是為CDO\u Mail對象填寫適當的字段,併發出Send命令。
下面是如何做到這一點:
CDO_Mail.Subject = strSubjectCDO_Mail.From = strFromCDO_Mail.To = strToCDO_Mail.TextBody = strBodyCDO_Mail.CC = strCcCDO_Mail.BCC = strBccCDO_Mail.SendError_Handling:If Err.Description <> "" Then MsgBox Err.Description當您使用Outlook郵件對象時,不會出現任何彈出框或安全警報消息。
CDO只需將電子郵件放在一起,並利用您的SMTP服務器連接詳細信息來觸發消息。這是將電子郵件合併到Microsoft Word或Excel VBA腳本中的最簡單方法。
要將命令按鈕連接到此腳本,請進入“代碼編輯器”並單擊“工作表1”以查看該工作表的VBA代碼。
鍵入在上面粘貼腳本的函數的名稱。
以下是我在收件箱中收到的信息:
注意:如果您收到一個讀取傳輸連接到服務器失敗的錯誤,請確保在下面列出的代碼行中輸入了正確的用戶名、密碼、SMTP服務器和端口號以及SMTP配置。
只需按一下按鈕就可以從Excel發送電子郵件,這一切都很好。但是,您可能希望定期使用此功能,在這種情況下,自動化流程是有意義的。
為此,需要對宏進行更改。轉到visualbasic編輯器,複製並粘貼我們放在一起的全部代碼。
接下來,從項目層次結構中選擇ThisWorkbook。
從“代碼”窗口頂部的兩個下拉字段中,選擇“工作簿”,然後從“方法”下拉列表中選擇“打開”。
將上面的電子郵件腳本粘貼到私有子工作簿\u Open()中。
每當您打開Excel文件時,這將運行宏。
接下來,打開任務調度器。
您將使用此工具要求Windows定期自動打開電子表格,此時將啟動宏併發送電子郵件。
選擇創建基本任務。。。從“操作”菜單中,通過嚮導進行操作,直到到達“操作”屏幕。
選擇“啟動程序”,然後單擊“下一步”。
使用“瀏覽”按鈕查找Microsoft Excel在計算機上的位置,或將路徑複製並粘貼到“程序/腳本”字段中。
然後,在“添加參數”字段中輸入Microsoft Excel文檔的路徑。
完成嚮導後,您的日程安排就會就緒。
運行一個測試是值得的,方法是將操作安排在未來的幾分鐘內,然後在確認任務有效後修改它。
注意:您可能需要調整信任中心設置以確保宏正常運行。
為此,請打開電子表格並導航到“文件”>;“選項”>;“信任中心”。
從這裡單擊“信任中心設置”,然後在下一個屏幕上,將無線電撥號設置為從不顯示有關被阻止內容的信息。
microsoftexcel是一個非常強大的工具,但是學習如何最大限度地利用它可能有點嚇人。如果你想真正掌握這個軟件,你需要熟悉VBA,這不是一個小任務。
然而,結果不言自明。有了一點VBA經驗,你很快就能讓microsoftexcel自動執行基本任務,讓你有更多的時間專注於更緊迫的事情。
用VBA建立專業知識需要時間,但是如果你能堅持下去,你很快就會看到你的勞動成果。
一個很好的開始是我們的權威教程在Excel中使用VBA。一旦你完成了,這個簡單的腳本發送電子郵件從Excel將感覺像孩子的遊戲。
... 可以學習如何以正常的方式完成所有這些單獨的事情,或者使用批處理檔案來完成它們。但是VB指令碼比批處理指令碼好,因為它們更靈活。如果您將以下指令碼儲存在一個公共位...
...會遇到它的一個缺點:電子表格的大小。繼續閱讀,瞭解如何縮小Excel電子表格或將大型CSV檔案拆分為多個檔案。 ...
... 一旦您知道如何新增正確的引用,以及如何佈局後臺VBA程式碼的語法,那麼將microsoftexcel資料整合到microsoftword中就非常容易了。 ...
...們的其他技巧和竅門,比如在Excel中建立下拉列表,瞭解如何在Excel公式中使用IF語句,以及使用Excel的Goal Seek功能計算資料。 ...
郵件合併就像你多年沒聯絡的老朋友。被低估和忽視,直到有一天你非常需要它們。 ...
...gle指令碼,並將結果分發給所有人。您將在本文底部看到如何自定義這個新選單項。 ...
...使用巨集是實現任務自動化的最佳方法。我們將向您展示如何在Excel 2016中錄製巨集,以便您可以騰出時間,不再將時間浪費在重複操作上。 ...