
如何在Excel中將一系列單元格作為圖像粘貼到郵件正文中?
從Excel發(fā)送電子郵件時,如果需要復(fù)制一定范圍的單元格并將其作為圖像粘貼到郵件正文中。 您如何處理此任務(wù)?
使用Excel中的VBA代碼將一系列單元格作為圖像粘貼到電子郵件正文中
使用Excel中的VBA代碼將一系列單元格作為圖像粘貼到電子郵件正文中驚人的! 在 Excel 中使用高效的選項卡,如 Chrome、Edge、Firefox 和 Safari! 每天節(jié)省50%的時間,并減少數(shù)千次鼠標(biāo)單擊!
可能沒有其他好的方法可以解決您的問題,本文中的VBA代碼可以為您提供幫助。 請這樣做:
1。 啟用要復(fù)制的工作表并將其粘貼為圖像,按住 ALT + F11 鍵打開 Microsoft Visual Basic應(yīng)用程序 窗口。
2。 點擊 插頁 > 模塊,然后將以下代碼粘貼到 模塊 窗口。
VBA代碼:將一系列單元格作為圖像粘貼到電子郵件正文中:
Sub sendMail()Dim TempFilePath As StringDim xOutApp As ObjectDim xOutMail As ObjectDim xHTMLBody As StringDim xRg As RangeOn Error Resume NextSet xRg = Application.InputBox("Please select the data range:", "KuTools for Excel", Selection.Address, , , , , 8)If xRg Is Nothing Then Exit SubWith Application.Calculation = xlManual.ScreenUpdating = False.EnableEvents = FalseEnd WithSet 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=http://www.cn-boutiq.com/skin/default/image/nopic.gif" _& "<br>Best Regards!</font></span>"With xOutMail.Subject = "".HTMLBody = xHTMLBody.Attachments.Add TempFilePath & "DashboardFile.jpg", olByValue.To = " ".Cc = " ".DisplayEnd WithEnd SubSub createJpg(SheetName As String, xRgAddrss As String, nameFile As String)Dim xRgPic As RangeDim xShape As ShapeThisWorkbook.ActivateWorksheets(SheetName).ActivateSet xRgPic = ThisWorkbook.Worksheets(SheetName).Range(xRgAddrss)xRgPic.CopyPictureWith ThisWorkbook.Worksheets(SheetName).ChartObjects.Add(xRgPic.Left, xRgPic.Top, xRgPic.Width, xRgPic.Height).ActivateFor Each xShape In ActiveSheet.ShapesxShape.Line.Visible = msoFalseNext.Chart.Paste.Chart.Export Environ$("temp") & "" & nameFile & ".jpg", "JPG"End WithWorksheets(SheetName).ChartObjects(Worksheets(SheetName).ChartObjects.Count).DeleteSet xRgPic = NothingEnd SubCopy備注:在以上代碼中,您可以根據(jù)需要更改正文內(nèi)容和電子郵件地址。
3。 插入代碼后,按 F5運行該代碼的關(guān)鍵,將彈出一個對話框,提醒您選擇要插入電子郵件正文的數(shù)據(jù)范圍,如圖所示,請參見屏幕截圖:
4. 然后點擊 OK 按鈕和a 其它咨詢/備注 顯示窗口,所選數(shù)據(jù)范圍已作為圖像插入到主體中,請參見屏幕截圖:
備注: 在里面 其它咨詢/備注 窗口中,您還可以根據(jù)需要在“收件人”和“抄送”字段中更改正文內(nèi)容和電子郵件地址。
5。 最后點擊 提交 按鈕發(fā)送此電子郵件。
備注:如果您需要從不同的工作表中粘貼多個范圍,則以下VBA代碼可以幫您一個忙:
首先,您應(yīng)該選擇要插入電子郵件正文中的多個范圍作為圖片,然后應(yīng)用以下代碼:
VBA代碼:將多個單元格區(qū)域粘貼到電子郵件正文中作為圖像:
Sub sendMail()Dim TempFilePath As StringDim xOutApp As ObjectDim xOutMail As ObjectDim xHTMLBody As StringDim xRg As RangeDim xSheet As WorksheetDim xAcSheet As WorksheetDim xFileName As StringDim xSrc As StringOn Error Resume NextTempFilePath = Environ$("temp") & "RangePic"If Len(VBA.Dir(TempFilePath, vbDirectory)) = False ThenVBA.MkDir TempFilePathEnd IfSet xAcSheet = Application.ActiveSheetFor Each xSheet In Application.WorksheetsxSheet.ActivateSet xRg = xSheet.Application.SelectionIf xRg.Cells.Count > 1 ThenCall createJpg(xSheet.Name, xRg.Address, "DashboardFile" & VBA.Trim(VBA.Str(xSheet.Index)))End IfNextxAcSheet.ActivateWith Application.Calculation = xlManual.ScreenUpdating = False.EnableEvents = FalseEnd WithSet 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 = DirIf xFileName = "" Then Exit DoLoopxHTMLBody = "<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 = xHTMLBodyxFileName = Dir(TempFilePath & "*.*")Do While xFileName <> "".Attachments.Add TempFilePath & xFileName, olByValuexFileName = DirIf xFileName = "" Then Exit DoLoop.To = " ".Cc = " ".DisplayEnd WithIf VBA.Dir(TempFilePath & "*.*") <> "" ThenVBA.Kill TempFilePath & "*.*"End IfEnd SubSub createJpg(SheetName As String, xRgAddrss As String, nameFile As String)Dim xRgPic As RangeThisWorkbook.ActivateWorksheets(SheetName).ActivateSet xRgPic = ThisWorkbook.Worksheets(SheetName).Range(xRgAddrss)xRgPic.CopyPictureWith 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 WithWorksheets(SheetName).ChartObjects(Worksheets(SheetName).ChartObjects.Count).DeleteSet xRgPic = NothingEnd SubCopy最佳辦公生產(chǎn)力工具
熱門特色: 查找、突出顯示或識別重復(fù)項 |刪除空白行 |合并列或單元格而不丟失數(shù)據(jù) | 不使用公式進(jìn)行四舍五入...超級查詢: 多條件VLookup| 多值VLookup| 跨多個工作表的 VLookup | 模糊查詢....高級下拉列表: 快速創(chuàng)建下拉列表 |依賴下拉列表 |多選下拉列表....列管理器: 添加特定數(shù)量的列 | 移動列 | 切換隱藏列的可見性狀態(tài) | 比較范圍和列...特色功能: 網(wǎng)格焦點 |設(shè)計圖 | 大方程式酒吧 |工作簿和工作表管理器|資源庫 (自動文本)|日期選擇器|合并工作表 |加密/解密單元格 |按列表發(fā)送電子郵件 |超級篩選 |特殊過濾器 (過濾粗體/斜體/刪除線...)...前 15 個工具集: 12 文本 工具 (添加文本, 刪除字符,...) | 50+ 圖表 類型 (甘特圖,...) | 40+ 實用 公式 (根據(jù)生日計算年齡,...) | 19 插入 工具 (插入二維碼, 從路徑插入圖片,...) | 12 轉(zhuǎn)化 工具 (小寫金額轉(zhuǎn)大寫, 貨幣兌換,...) | 7 合并與拆分 工具 (高級組合行, 分裂細(xì)胞,...) | ... 和更多使用 Kutools for Excel 增強(qiáng)您的 Excel 技能,體驗前所未有的效率。 Kutools for Excel 提供了 300 多種高級功能來提高生產(chǎn)力并節(jié)省時間。 單擊此處獲取您最需要的功能...
閱讀更多Office Tab 為 Office 帶來選項卡式界面,讓您的工作更加輕松在Word,Excel,PowerPoint中啟用選項卡式和閱讀,發(fā)布者,Access,Visio和Project。在同一窗口的新選項卡中而不是在新窗口中打開并創(chuàng)建多個文檔。每天將您的工作效率提高50%,并減少數(shù)百次鼠標(biāo)單擊!
