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

如何僅通過Excel從Outlook發送工作表?

如果要通過Outlook通過Excel從工作簿中通過電子郵件發送單個工作表,則可以將工作表作為附件,正文內容或PDF文件發送。 但是,有沒有更快的方法可以讓您在Excel中處理此問題?

使用“發送到郵件收件人”命令從Excel發送單個工作表作為正文

使用VBA代碼從Excel發送單個工作表作為附件

使用VBA代碼從Excel發送單個工作表為PDF文件


箭頭藍色右氣泡 使用“發送到郵件收件人”命令從Excel發送單個工作表作為正文

Excel支持我們使用“發送到郵件收件人”命令通過電子郵件將活動工作表作為正文內容髮送。 您可以執行以下操作:

如果您使用Excel 2007、2010或2013,則需要添加 發送到郵件收件人 命令 快速訪問工具欄 第一。

1。 點擊圖標 自定義快速訪問工具欄,並選擇 更多命令,請參見屏幕截圖:

doc-email-sheet1

2. 而在中 Excel選項 對話框中選擇 功能區中沒有的命令從中選擇命令 下拉列表,然後選擇 發送到郵件收件人 選項,然後單擊 添加>> 按鈕添加此命令,最後單擊 OK 保存此設置。 看截圖:

doc-email-sheet2

3. 發送到郵件收件人 命令已插入 快速訪問工具欄,請參見屏幕截圖:

doc-email-sheet3

4。 然後點擊這個 發送到郵件收件人 圖標按鈕,並彈出一個提示框, Email 提示框,選中 發送當前工作表作為郵件正文,然後點擊 OK。 看截圖:

doc-email-sheet4

5。 在工作表數據上方將顯示一個電子郵件編輯框,您可以在相應的文本框中輸入收件人,主題和簡介。 看截圖:

doc-email-sheet5

6. 然後點擊 發送此Sheet將此活動工作表作為郵件正文發送給您的特定人員。


箭頭藍色右氣泡 使用VBA代碼從Excel發送單個工作表作為附件

如果您想通過電子郵件將活動工作表作為附件發送,以下VBA代碼可以為您提供幫助。

1。 激活您要發送的工作表。

2。 按住 ALT + F11 鍵,然後打開 Microsoft Visual Basic for Applications窗口.

3。 點擊 插入 > 模塊,然後將以下代碼粘貼到 模塊窗口.

VBA代碼:從Excel發送當前工作表作為附件

Sub SendWorkSheet()
'Update 20131209
Dim xFile As String
Dim xFormat As Long
Dim Wb As Workbook
Dim Wb2 As Workbook
Dim FilePath As String
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
On Error Resume Next
Application.ScreenUpdating = False
Set Wb = Application.ActiveWorkbook
ActiveSheet.Copy
Set Wb2 = Application.ActiveWorkbook
Select Case Wb.FileFormat
Case xlOpenXMLWorkbook:
    xFile = ".xlsx"
    xFormat = xlOpenXMLWorkbook
Case xlOpenXMLWorkbookMacroEnabled:
    If Wb2.HasVBProject Then
        xFile = ".xlsm"
        xFormat = xlOpenXMLWorkbookMacroEnabled
    Else
        xFile = ".xlsx"
        xFormat = xlOpenXMLWorkbook
    End If
Case Excel8:
    xFile = ".xls"
    xFormat = Excel8
Case xlExcel12:
    xFile = ".xlsb"
    xFormat = xlExcel12
End Select
FilePath = Environ$("temp") & "\"
FileName = Wb.Name & Format(Now, "dd-mmm-yy h-mm-ss")
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
With OutlookMail
    .To = "skyyang@extendoffice.com"
    .CC = ""
    .BCC = ""
    .Subject = "kte features"
    .Body = "Please check and read this document."
    .Attachments.Add Wb2.FullName
    .Send
End With
Wb2.Close
Kill FilePath & FileName & xFile
Set OutlookMail = Nothing
Set OutlookApp = Nothing
Application.ScreenUpdating = True
End Sub

備註:在上面的代碼中,您可以根據自己的需要更改以下信息。

  • .To =“ skyyang @extendoffice.com”
  • .CC =“”
  • .BCC =“”
  • .Subject =“ KTE功能”
  • .Body =“請檢查並閱讀本文檔。”

4。 然後點擊 F5 鍵運行此代碼,然後會彈出一個提示框,單擊 進度條完成時,然後當前工作表已作為附件發送給您的收件人。

doc-email-sheet6


箭頭藍色右氣泡 使用VBA代碼從Excel發送單個工作表為PDF文件

有時,您需要將工作表報告發送給其他人,但不希望其他人修改它。 在這種情況下,您可以從Excel將工作表作為PDF文件發送。

1. 激活您要發送的工作表。

2。 按住 ALT + F11 鍵,然後打開 Microsoft Visual Basic for Applications窗口.

3。 點擊 插入 > 模塊,然後將以下代碼粘貼到 模塊窗口.

VBA代碼:從Excel以PDF文件形式發送當前工作表

Sub SendWorkSheetToPDF()
'Update 20131209
Dim Wb As Workbook
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
On Error Resume Next
Set Wb = Application.ActiveWorkbook
FileName = Wb.FullName
xIndex = VBA.InStrRev(FileName, ".")
If xIndex > 1 Then FileName = VBA.Left(FileName, xIndex - 1)
FileName = FileName & "_" + ActiveSheet.Name & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=FileName
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
With OutlookMail
    .To = "skyyang@extendoffice.com"
    .CC = ""
    .BCC = ""
    .Subject = "kte features"
    .Body = "Please check and read this document."
    .Attachments.Add FileName
    .Send
End With
Kill FileName
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub

注意:在上面的代碼中,您可以根據需要更改以下信息。

  • .To =“ skyyang @extendoffice.com”
  • .CC =“”
  • .BCC =“”
  • .Subject =“ KTE功能”
  • .Body =“請檢查並閱讀本文檔。”

4。 然後按 F5 鍵,然後會彈出一個提示框,單擊 進度條確定後,活動的工作表已作為PDF文件發送給特定的人。

doc-email-sheet6

筆記:

1.這些方法僅在將Outlook用作郵件程序時可用。

2.發送當前工作表後,您可以轉到Outlook以確保已成功發送電子郵件。


創建郵件列表然後發送電子郵件

Kutools for Excel's 創建郵件列表 及 發送 電子郵件 實用程序可以在工作表中快速創建郵件列表,然後將相同的主題,相同的內容和相同的附件發送到多個電子郵件地址。
doc郵件清單1
doc向下箭頭
doc郵件清單2

相關文章:

如何通過Outlook從Excel發送當前工作簿?

如何通過Excel從Outlook發送/通過電子郵件發送單元格範圍?


最佳辦公效率工具

Kutools for Excel解決了您的大多數問題,並使您的生產率提高了80%

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

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

  • 在Word,Excel,PowerPoint中啟用選項卡式編輯和閱讀,發布者,Access,Visio和Project。
  • 在同一窗口的新選項卡中而不是在新窗口中打開並創建多個文檔。
  • 每天將您的工作效率提高50%,並減少數百次鼠標單擊!
officetab底部
按評論排序
留言 (30)
還沒有評分。 成為第一位評論!
網站主持人對此評論進行了最小化
如何在第二個示例中使用 VBA 代碼添加多個收件人?
網站主持人對此評論進行了最小化
這行得通,但是我們如何在發件人的抄送中自動添加?
網站主持人對此評論進行了最小化
當我使用 VBA 代碼以 pdf 格式發送時,電子郵件發送正常,但沒有附件。 我究竟做錯了什麼? 謝謝,錢達
網站主持人對此評論進行了最小化
你有沒有為此得到一個分析器? 我也有同樣的困難。
網站主持人對此評論進行了最小化
嗨,我想通過 Excel 中的命令按鈕僅將選定的單元格發送到 Outlook 的收據。
網站主持人對此評論進行了最小化
我已將發送附加到郵件收件人,但當我單擊發送 excel 時未激活。 我做錯了什麼?
網站主持人對此評論進行了最小化
我正在嘗試通過 Outlook 將給定工作簿中的多個名稱範圍作為 PDF 發送。 自動打開和關閉大量工作簿。 我不確定如何修改下面聲明的代碼,這非常適合在筆記本電腦上發送包含所有新版本的工作表。 我每晚從我的桌面 Windows 7 Excel 和 Outlook 10 Adob​​e Acrobat Pro 10 發送多個報告,並嘗試重新配置以在筆記本電腦上使用升級版本的 Windows 8.1 Office 15 和 adobe acrobat Xl 執行相同操作。 您推薦的用於發送工作表的代碼 Sub SendWorkSheetToPDF() 'Update 20131209 Dim Wb As Workbook Dim FileName As String Dim OutlookApp As Object 將 OutlookMail 作為對像變暗 錯誤恢復 Next Set Wb = Application.ActiveWorkbook FileName = Wb.FullName xIndex = VBA.InStrRev( FileName, ".") If xIndex > 1 Then FileName = VBA.Left(FileName, xIndex - 1) FileName = FileName & "_" + ActiveSheet.Name & ".pdf" ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:= FileName Set OutlookApp = CreateObject("Outlook.Application") Set OutlookMail = OutlookApp.CreateItem(0) With OutlookMail .To = "jbristow1@gmail.com" .CC = "" .BCC = "" .Subject = "Outlook Code" .Body = "請檢查並閱讀此文檔。" .Attachments.Add FileName .Send End With Kill FileName Set OutlookMail = Nothing Set OutlookApp = Nothing End Sub
網站主持人對此評論進行了最小化
吉姆,您需要添加; 在電子郵件地址後面並添加另一個,請參見下面的示例:.To = "jbristow1@gmail.com;someone@gmail.com;onemoreperson@gmail.com"
網站主持人對此評論進行了最小化
嗨,我正在使用此代碼,但發送時有任何問題。 這不是一個大問題,但我不喜歡它:-) 在通過郵件發送文件之前,我首先通過 VBA 將文件自動保存到某個位置。 該文件的名稱已經以 .xlsx 結尾 當​​通過電子郵件發送文件時,附件讀取為 .xlsx.xlsx,因此它將 .xslx 添加到文件中。 有誰知道我是否可以在將其作為附件發送之前忽略保存? 我已經在發送之前保存了...謝謝,
網站主持人對此評論進行了最小化
我正在使用上面的第二個示例從工作簿中發送一張工作表,但它正在發送整個工作簿。 我複制了上面的示例,唯一更改的部分是電子郵件地址。 我不確定出了什麼問題。
網站主持人對此評論進行了最小化
我正在使用上面的代碼將單個工作表作為 excel 附件發送,我遇到的問題是它發送的是整個工作簿,而不僅僅是單個工作表。 我只更改了電子郵件的“收件人”、“主題”和“正文”。 我不確定出了什麼問題。 請幫忙! :傷心:
網站主持人對此評論進行了最小化
[quote]我正在使用上面的代碼將單個工作表作為 Excel 附件發送,我遇到的問題是它發送的是整個工作簿,而不僅僅是單個工作表。 我只更改了電子郵件的“收件人”、“主題”和“正文”。 我不確定出了什麼問題。 請幫忙! :傷心:通過珍妮特[/quote] 你好,請告訴我你的Office和電腦系統的版本信息。
網站主持人對此評論進行了最小化
您好,我使用的是 Office 2010 和 Windows 7。謝謝!
網站主持人對此評論進行了最小化
[quote]嗨,我使用的是 Office 2010 和 Windows 7。謝謝!通過珍妮特[/quote] 您好,此 VBA 可以在 Window 2010 中使用 Office 7。請確保您在運行此 VBA 之前已打開 Outlook。
網站主持人對此評論進行了最小化
我正在嘗試使用此代碼使用位於 c:\ 驅動器上的個人創建的模板 *.ost 文件發送單個電子表格。 似乎無法弄清楚如何調整上面的代碼。 任何指針?
網站主持人對此評論進行了最小化
使用 VBA 代碼從 Excel 發送單個工作表作為附件:優秀的 VBA 代碼。 效果很好! 謝謝!!! :-) 我不想手動輸入收件人:和抄送:電子郵件,而是想從名為“電子郵件列表”的單獨工作表中提取電子郵件地址。 (a1) 具有“收件人”電子郵件地址,(b1) 具有“抄送”電子郵件地址。 我知道這解決起來相對簡單,但我無法弄清楚我做錯了什麼。 提前謝謝大家。 Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat With OutlookMail .To = "skyyang@extendoffice.com" .CC = "" .BCC = "" .Subject = "kte features" .Body = "請檢查並閱讀此文檔。" .Attachments.Add Wb2.FullName .Send End With Wb2.Close Kill FilePath & FileName & xFile Set OutlookMail = Nothing Set OutlookApp = Nothing Application.ScreenUpdating = True End Sub
網站主持人對此評論進行了最小化
嘿,我在我的公司中使用自動化流程我需要使用 excel 和 Outlook 2010 升級我的所有電腦我在 windows xp 中有一個代碼,我正在使用 Outlook Express 郵寄一張表格,該代碼在 xp 中運行良好,但現在我需要用 windows 7 升級它。 我嘗試了很多,但我無法發送表格,所以請幫忙
網站主持人對此評論進行了最小化
嗨,宏對我來說非常好。 我以前從未使用過宏,所以任何人都可以讓我朝著正確的方向前進 - 我試圖將其發送給多個人,但不確定如何將額外的電子郵件地址放在宏的“收件人”部分。 提前致謝
網站主持人對此評論進行了最小化
嗨,我是法國人,對不起我的英語。 怎麼可能將我的工作表的值的單元格放在 .too/ .CC ... 我認為是這樣的: Sub SendWorkSheet() 'Update 20131209 Dim xFile As String Dim xFormat As Long Dim Wb As Workbook Dim Wb2 As Workbook將文件路徑調暗為字符串 將文件名調為字符串 將 OutlookApp 調為對象 將 OutlookMail 調為對象 出錯時繼續下一個 Application.ScreenUpdating = False 設置 Wb = Application.ActiveWorkbook ActiveSheet.Copy 設置 Wb2 = Application.ActiveWorkbook Select Case Wb.FileFormat Case xlOpenXMLWorkbook: xFile = ".xlsx" xFormat = xlOpenXMLWorkbook Case xlOpenXMLWorkbookMacroEnabled: If Wb2.HasVBProject Then xFile = ".xlsm" xFormat = xlOpenXMLWorkbookMacroEnabled Else xFile = ".xlsx" xFormat = xlOpenXMLWorkbook End If Case Excel8: xFile = ".xls" xFormat = Excel8 Case xlExcel12 : xFile = ".xlsb" xFormat = xlExcel12 End Select FilePath = Environ$("temp") & "\" FileName = Wb.Name & Format(Now, "dd-mmm-yy h-mm-ss") 設置 OutlookApp = CreateObject("Outlook.Application") 設置 OutlookMail = OutlookApp.Cre ateItem(0) Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat With OutlookMail .To = "skyyang@extendoffice" .com" & RANGE("AVIVA!b12") .CC = "" & RANGE("AVIVA!c12") .BCC = "" .Subject = "NOUVEAU DOSSIER" .body = "請檢查並閱讀此文件。" .Attachments.Add Wb2.FullName .DISPLAY .Send End With Wb2.Close Kill FilePath & FileName & xFile Set OutlookMail = Nothing Set OutlookApp = Nothing Application.ScreenUpdating = True End Sub 謝謝你的幫助
網站主持人對此評論進行了最小化
我們可以允許用戶使用上述代碼添加電子郵件 ID...
網站主持人對此評論進行了最小化
先生,我可以通過包含主題和文本將選定的工作表作為附件發送。 但文件名顯示為 book1-02-apr-2016.... 相反,我想在代碼本身中給出文件名(每次發送時都使用相同的名稱)請幫助我
網站主持人對此評論進行了最小化
請緊急幫助我。 這是我第一次使用以 PDF 格式發送當前工作表,但下面的代碼根本不起作用,當我按下 ctrl+G 時,允許的對話框沒有出現。 我還想知道要更改什麼以引用包含電子郵件地址而不是“到特定電子郵件地址的單元格。Sub SendWorkSheetToPDF() 'Update 20131209 Dim Wb As Workbook Dim FileName As String Dim OutlookApp As Object Dim OutlookMail As Object On Error Resume Next Set Wb = Application.ActiveWorkbook FileName = Wb.FullName xIndex = VBA.InStrRev(FileName, ".") If xIndex > 1 Then FileName = VBA.Left(FileName, xIndex - 1) FileName = FileName & "_" + ActiveSheet.Name & ".pdf" ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=FileName Set OutlookApp = CreateObject("Outlook.Application") Set OutlookMail = OutlookApp.CreateItem(0) With OutlookMail .To = "skyyang@extendoffice.com" .CC = "" .BCC = "" .Subject = "kte features" .Body = "請檢查並閱讀此文檔。" .Attachments.Add FileName .Send End With Kill FileName Set OutlookMail = Nothing Set OutlookApp =沒有結束子
網站主持人對此評論進行了最小化
這段代碼很好用,但是,有沒有人知道一種方法可以自動將字段作為警報,讓電子郵件根據日期列自動發送?
網站主持人對此評論進行了最小化
你好! 是否可以使用此代碼,但不是立即發送而是打開郵件?
網站主持人對此評論進行了最小化
你可以試試這個代碼:
子發送工作表()
'更新 20180109
將 xFile 調暗為字符串
將 xFormat 變暗
將 Wb 調暗為工作簿
將 Wb2 調暗為工作簿
將文件路徑變暗為字符串
昏暗的FileName作為字符串
將 OutlookApp 調暗為對象
將 OutlookMail 調暗為對象
在錯誤恢復下一頁
Application.ScreenUpdating = False
設置 Wb = Application.ActiveWorkbook
ActiveSheet.Copy
設置 Wb2 = Application.ActiveWorkbook
選擇案例 Wb.FileFormat
案例 xlOpenXMLWorkbook:
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
案例 xlOpenXMLWorkbookMacroEnabled:
如果 Wb2.HasVBProject 然後
xFile = ".xlsm"
xFormat = xlOpenXMLWorkbookMacroEnabled
其他
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
如果結束
案例Excel8:
xFile = ".xls"
x格式 = Excel8
案例 xlExcel12:
xFile = ".xlsb"
xFormat = xlExcel12
最終選擇
FilePath = Environ$("temp") & "\"
FileName = Wb.Name & Format(現在,“dd-mmm-yy h-mm-ss”)
設置 OutlookApp = CreateObject("Outlook.Application")
設置 OutlookMail = OutlookApp.CreateItem(0)
Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
使用 OutlookMail
.To =“ skyyang @extendoffice.com”
.CC =“”
.BCC =“”
.Subject =“ KTE功能”
.Body =“請檢查並閱讀本文檔。”
.Attachments.Add Wb2.FullName
。顯示
' 。發送
結束
Wb2.關閉
殺死 FilePath & FileName & xFile
設置 OutlookMail = 無
設置 OutlookApp = 無
Application.ScreenUpdating = True
END SUB

請讓我知道它是否適合您,謝謝。
網站主持人對此評論進行了最小化
無論如何,我可以輕鬆地通過我的 Outlook 發送一個 Excel 工作表,而無需所有這些?? 我可以發送工作表上下文,但不能將工作簿作為附件發送。 在我的工作計算機上,我可以從 word 和 excel 發送,但在家裡遇到了麻煩。
這裡還沒有評論
載入更多
留下你的意見
以訪客身份發帖
×
評價此帖子:
0   字符
推薦地點