如何在Excel中將一系列單元格作為圖像粘貼到郵件正文中?
從Excel發送電子郵件時,如果需要復制一定范圍的單元格并將其作為圖像粘貼到郵件正文中。 您如何處理此任務?
使用Excel中的VBA代碼將一系列單元格作為圖像粘貼到電子郵件正文中
使用Excel中的VBA代碼將一系列單元格作為圖像粘貼到電子郵件正文中
驚人的! 在 Excel 中使用高效的選項卡,如 Chrome、Edge、Firefox 和 Safari! 每天節省50%的時間,并減少數千次鼠標單擊!
可能沒有其他好的方法可以解決您的問題,本文中的VBA代碼可以為您提供幫助。 請這樣做:
1。 啟用要復制的工作表并將其粘貼為圖像,按住 ALT + F11 鍵打開 Microsoft Visual Basic應用程序 窗口。
2。 點擊 插頁 > 模塊,然后將以下代碼粘貼到 模塊 窗口。
VBA代碼:將一系列單元格作為圖像粘貼到電子郵件正文中:
Sub sendMail()
Dim TempFilePath As String
Dim xOutApp As Object
Dim xOutMail As Object
Dim xHTMLBody As String
Dim xRg As Range
On Error Resume Next
Set xRg = Application.InputBox("Please select the data range:", "KuTools for Excel", Selection.Address, , , , , 8)
If xRg Is Nothing Then Exit Sub
With Application
.Calculation = xlManual
.ScreenUpdating = False
.EnableEvents = False
End With
Set xOutApp = CreateObject("outlook.application")
Set xOutMail = xOutApp.CreateItem(olMailItem)
Call createJpg(ActiveSheet.Name, xRg.Address, "DashboardFile")
TempFilePath = Environ$("temp") & "\"
xHTMLBody = "<span LANG=EN>" _
& "<p class=style2><span LANG=EN><font FACE=Calibri SIZE=3>" _
& "Hello, this is the data range that you want:<br> " _
& "<br>" _
& "<img src=//cdn.extendoffice.com/cid:DashboardFile.jpg>" _
& "<br>Best Regards!</font></span>"
With xOutMail
.Subject = ""
.HTMLBody = xHTMLBody
.Attachments.Add TempFilePath & "DashboardFile.jpg", olByValue
.To = " "
.Cc = " "
.Display
End With
End Sub
Sub createJpg(SheetName As String, xRgAddrss As String, nameFile As String)
Dim xRgPic As Range
Dim xShape As Shape
ThisWorkbook.Activate
Worksheets(SheetName).Activate
Set xRgPic = ThisWorkbook.Worksheets(SheetName).Range(xRgAddrss)
xRgPic.CopyPicture
With ThisWorkbook.Worksheets(SheetName).ChartObjects.Add(xRgPic.Left, xRgPic.Top, xRgPic.Width, xRgPic.Height)
.Activate
For Each xShape In ActiveSheet.Shapes
xShape.Line.Visible = msoFalse
Next
.Chart.Paste
.Chart.Export Environ$("temp") & "\" & nameFile & ".jpg", "JPG"
End With
Worksheets(SheetName).ChartObjects(Worksheets(SheetName).ChartObjects.Count).Delete
Set xRgPic = Nothing
End Sub
備注:在以上代碼中,您可以根據需要更改正文內容和電子郵件地址。
3。 插入代碼后,按 F5運行該代碼的關鍵,將彈出一個對話框,提醒您選擇要插入電子郵件正文的數據范圍,如圖所示,請參見屏幕截圖:
4. 然后點擊 OK 按鈕和a 其它咨詢/備注 顯示窗口,所選數據范圍已作為圖像插入到主體中,請參見屏幕截圖:
備注: 在里面 其它咨詢/備注 窗口中,您還可以根據需要在“收件人”和“抄送”字段中更改正文內容和電子郵件地址。
5。 最后點擊 提交 按鈕發送此電子郵件。
備注:如果您需要從不同的工作表中粘貼多個范圍,則以下VBA代碼可以幫您一個忙:
首先,您應該選擇要插入電子郵件正文中的多個范圍作為圖片,然后應用以下代碼:
VBA代碼:將多個單元格區域粘貼到電子郵件正文中作為圖像:
Sub sendMail()
Dim TempFilePath As String
Dim xOutApp As Object
Dim xOutMail As Object
Dim xHTMLBody As String
Dim xRg As Range
Dim xSheet As Worksheet
Dim xAcSheet As Worksheet
Dim xFileName As String
Dim xSrc As String
On Error Resume Next
TempFilePath = Environ$("temp") & "\RangePic\"
If Len(VBA.Dir(TempFilePath, vbDirectory)) = False Then
VBA.MkDir TempFilePath
End If
Set xAcSheet = Application.ActiveSheet
For Each xSheet In Application.Worksheets
xSheet.Activate
Set xRg = xSheet.Application.Selection
If xRg.Cells.Count > 1 Then
Call createJpg(xSheet.Name, xRg.Address, "DashboardFile" & VBA.Trim(VBA.Str(xSheet.Index)))
End If
Next
xAcSheet.Activate
With Application
.Calculation = xlManual
.ScreenUpdating = False
.EnableEvents = False
End With
Set xOutApp = CreateObject("outlook.application")
Set xOutMail = xOutApp.CreateItem(olMailItem)
xSrc = ""
xFileName = Dir(TempFilePath & "*.*")
Do While xFileName <> ""
xSrc = xSrc + VBA.vbCrLf + "<img src=cid:" + xFileName + "><br>"
xFileName = Dir
If xFileName = "" Then Exit Do
Loop
xHTMLBody = "<span LANG=EN>" _
& "<p class=style2><span LANG=EN><font FACE=Calibri SIZE=3>" _
& "Hello, this is the data range that you want:<br> " _
& "<br>" _
& xSrc _
& "<br>Best Regards!</font></span>"
With xOutMail
.Subject = ""
.HTMLBody = xHTMLBody
xFileName = Dir(TempFilePath & "*.*")
Do While xFileName <> ""
.Attachments.Add TempFilePath & xFileName, olByValue
xFileName = Dir
If xFileName = "" Then Exit Do
Loop
.To = " "
.Cc = " "
.Display
End With
If VBA.Dir(TempFilePath & "*.*") <> "" Then
VBA.Kill TempFilePath & "*.*"
End If
End Sub
Sub createJpg(SheetName As String, xRgAddrss As String, nameFile As String)
Dim xRgPic As Range
ThisWorkbook.Activate
Worksheets(SheetName).Activate
Set xRgPic = ThisWorkbook.Worksheets(SheetName).Range(xRgAddrss)
xRgPic.CopyPicture
With ThisWorkbook.Worksheets(SheetName).ChartObjects.Add(xRgPic.Left, xRgPic.Top, xRgPic.Width, xRgPic.Height)
.Activate
.Chart.Paste
.Chart.Export Environ$("temp") & "\RangePic\" & nameFile & ".jpg", "JPG"
End With
Worksheets(SheetName).ChartObjects(Worksheets(SheetName).ChartObjects.Count).Delete
Set xRgPic = Nothing
End Sub
最佳辦公生產力工具
熱門特色: 查找、突出顯示或識別重復項
| 刪除空白行
| 合并列或單元格而不丟失數據
| 不使用公式進行四舍五入 ...
超級查詢: 多條件VLookup
| 多值VLookup
| 跨多個工作表的 VLookup
| 模糊查詢 ....
高級下拉列表: 快速創建下拉列表
| 依賴下拉列表
| 多選下拉列表 ....
列管理器: 添加特定數量的列
| 移動列
| 切換隱藏列的可見性狀態
| 比較范圍和列 ...
特色功能: 網格焦點
| 設計圖
| 大方程式酒吧
| 工作簿和工作表
管理器
| 資源庫 (自動文本)
| 日期選擇器
| 合并工作表
| 加密/解密單元格
| 按列表發送電子郵件
| 超級篩選
|特殊過濾器 (過濾粗體/斜體/刪除線...)...
前 15 個工具集:
12 文本 工具 (添加文本, 刪除字符,...)
| 50+ 圖表 類型 (
甘特圖,...)
| 40+ 實用 公式 (根據生日計算年齡,...)
| 19 插入 工具 (插入二維碼, 從路徑插入圖片,...)
| 12 轉化 工具 (小寫金額轉大寫, 貨幣兌換,...)
| 7 合并與拆分 工具 (高級組合行, 分裂細胞,...)
| ... 和更多
使用 Kutools for Excel 增強您的 Excel 技能,體驗前所未有的效率。 Kutools for Excel 提供了 300 多種高級功能來提高生產力并節省時間。 單擊此處獲取您最需要的功能...
閱讀更多
Office Tab 為 Office 帶來選項卡式界面,讓您的工作更加輕松
在Word,Excel,PowerPoint中啟用選項卡式編輯和閱讀,發布者,Access,Visio和Project。
在同一窗口的新選項卡中而不是在新窗口中打開并創建多個文檔。
每天將您的工作效率提高50%,并減少數百次鼠標單擊!