将工作簿中的文件和图表附加到excel vba创建的电子邮件中
我不是先进的Excel vba,但做了迄今为止使用这个网站 因此,我设法创建了我想发送电子邮件的表格,并创建了我想发送给读者的电子邮件,但我一直在思考如何将图表附加为图片(我已经在将要发送的工作簿的新工作表上创建了图片),并将相同的Excel工作簿附加到电子邮件,以完成电子邮件并准备发送 这就是我取得的成绩:将工作簿中的文件和图表附加到excel vba创建的电子邮件中,excel,vba,outlook,Excel,Vba,Outlook,我不是先进的Excel vba,但做了迄今为止使用这个网站 因此,我设法创建了我想发送电子邮件的表格,并创建了我想发送给读者的电子邮件,但我一直在思考如何将图表附加为图片(我已经在将要发送的工作簿的新工作表上创建了图片),并将相同的Excel工作簿附加到电子邮件,以完成电子邮件并准备发送 这就是我取得的成绩: Sub LFL_makrosu() 'select©&paste from sheet to another 'find last row on sheet
Sub LFL_makrosu()
'select©&paste from sheet to another
'find last row on sheet
Dim lRow As Long
lRow = Cells(Rows.Count, 1).End(xlUp).Row
'first copy&paste
Sheets("Sheet1").Select
lRow = Cells(Rows.Count, 1).End(xlUp).Row
'USE CORRECT CELLS ON BELOW CODE
Range("A2:B" & lRow).Select
Selection.SpecialCells(xlCellTypeVisible).Select
Selection.Copy
Sheets("Sheet4").Select
'USE CORRECT CELLS ON BELOW CODE
Range("A2").Select
ActiveSheet.Paste
'second copy&paste
Sheets("Sheet2").Select
lRow = Cells(Rows.Count, 1).End(xlUp).Row
'USE CORRECT CELLS ON BELOW CODE
Range("A2:B" & lRow).Select
Selection.SpecialCells(xlCellTypeVisible).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Sheet4").Select
lRow = Cells(Rows.Count, 1).End(xlUp).Row
'USE CORRECT CELLS ON BELOW CODE
Range("A" & lRow + 2).Select
ActiveSheet.Paste
'third copy&paste
Sheets("Sheet3").Select
lRow = Cells(Rows.Count, 1).End(xlUp).Row
'USE CORRECT CELLS ON BELOW CODE
Range("A2:B" & lRow).Select
Selection.SpecialCells(xlCellTypeVisible).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Sheet4").Select
lRow = Cells(Rows.Count, 1).End(xlUp).Row
'USE CORRECT CELLS ON BELOW CODE
Range("A" & lRow + 2).Select
ActiveSheet.Paste
'create the table and email
Call Snapshotandsendmail
End Sub
Sub Snapshotandsendmail()
' Snapshot Macro
Dim lRow As Long
lRow = Cells(Rows.Count, 1).End(xlUp).Row
'start creating mail and the table as picture
Dim wb As ThisWorkbook
Set wb = ThisWorkbook
Dim ws As Worksheet
Set ws = wb.Sheets("Sheet4")
Dim rng As Range
Set rng = ws.Range("A2:D18")
rng.CopyPicture
Dim CH As Chart
Set CH = Charts.Add
CH.Location xlLocationAsObject, "Sheet4"
Set CH = ActiveChart
ActiveChart.Parent.Name = "Final_Tablo"
ActiveSheet.ChartObjects("Final_Tablo").Height = rng.Height
ActiveSheet.ChartObjects("Final_Tablo").Width = rng.Width
rng.CopyPicture xlScreen, xlBitmap
CH.Paste
Call sendemail
End Sub
Sub sendemail()
'create the email on outlook
Dim olook As Outlook.Application
Set olook = New Outlook.Application
Dim omail As Outlook.MailItem
Set omail = olook.CreateItem(olMailItem)
With omail
.Display
End With
Signature = omail.HTMLBody
Dim fldName1 As String
fldName1 = Path & Gun & ".xlsx"
'creates the message on the Email from given date to today - 2
With omail
.To = "deniz.beser@koctas.com.tr"
.CC = "deniz.beser@koctas.com.tr"
.Subject = "LFL Karşılaştırması"
.HTMLBody = "<BODY style=font-size:11pt;font-family:calibri>Merhaba, <p>" & "01.01.2017 - 0" & DateAdd("d", -2, Date) & " tarih aralığını içeren; günlük LFL, Koçtaş All Stores Satış & CM & BM% ve bütçe karşılaştırmasını ekte bilgilerinize sunarız.<p>" & vbNewLine & Signature
'.Save
.Display
'.Send
End With
Set omail = Nothing
Set olook = Nothing
Set olAtt = Nothing
End Sub
子LFL_makrosu()
'选择并从工作表复制粘贴到另一工作表
'查找工作表上的最后一行
暗淡的光线和长的一样
lRow=单元格(Rows.Count,1).结束(xlUp).行
'第一次复制和粘贴
图纸(“图纸1”)。选择
lRow=单元格(Rows.Count,1).结束(xlUp).行
'在下面的代码中使用正确的单元格
范围(“A2:B”&lRow)。选择
Selection.SpecialCells(xlCellTypeVisible)。选择
选择,复制
图纸(“图纸4”)。选择
'在下面的代码中使用正确的单元格
范围(“A2”)。选择
活动表。粘贴
'第二次复制和粘贴
图纸(“图纸2”)。选择
lRow=单元格(Rows.Count,1).结束(xlUp).行
'在下面的代码中使用正确的单元格
范围(“A2:B”&lRow)。选择
Selection.SpecialCells(xlCellTypeVisible)。选择
Application.CutCopyMode=False
选择,复制
图纸(“图纸4”)。选择
lRow=单元格(Rows.Count,1).结束(xlUp).行
'在下面的代码中使用正确的单元格
范围(“A”&lRow+2)。选择
活动表。粘贴
'第三次复制和粘贴
图纸(“图纸3”)。选择
lRow=单元格(Rows.Count,1).结束(xlUp).行
'在下面的代码中使用正确的单元格
范围(“A2:B”&lRow)。选择
Selection.SpecialCells(xlCellTypeVisible)。选择
Application.CutCopyMode=False
选择,复制
图纸(“图纸4”)。选择
lRow=单元格(Rows.Count,1).结束(xlUp).行
'在下面的代码中使用正确的单元格
范围(“A”&lRow+2)。选择
活动表。粘贴
'创建表并发送电子邮件
调用Snapshot和Sendmail
端接头
子快照和发送邮件()
'快照宏
暗淡的光线和长的一样
lRow=单元格(Rows.Count,1).结束(xlUp).行
'开始将邮件和表格创建为图片
将wb设置为此工作簿
设置wb=ThisWorkbook
将ws设置为工作表
设置ws=wb.Sheets(“Sheet4”)
变暗rng As范围
设置rng=ws.范围(“A2:D18”)
复制图片
模糊查斯图
设置CH=图表。添加
第四章位置对象“表4”
Set CH=ActiveChart
ActiveChart.Parent.Name=“最终表格”
ActiveSheet.ChartObjects(“最终表格”).Height=rng.Height
ActiveSheet.ChartObjects(“最终表格”).Width=rng.Width
rng.CopyPicture xlScreen,xlBitmap
醋糊
呼叫发送电子邮件
端接头
Sub-sendemail()
'在outlook上创建电子邮件
作为Outlook.Application确定
Set-olook=newoutlook.Application
将omail设置为Outlook.MailItem
设置omail=olook.CreateItem(olMailItem)
与奥马尔
.展示
以
签名=omail.HTMLBody
尺寸fldName1为字符串
fldName1=路径和枪&“.xlsx”
'在电子邮件上创建从给定日期到今天的消息-2
与奥马尔
.给丹尼斯。beser@koctas.com.tr"
.CC=“丹尼斯。beser@koctas.com.tr"
.Subject=“LFL Karşlaştırması”
.HTMLBody=“Merhaba,”和“01.01.2017-0”&DateAdd(“d”&Date)和“tarih aralııınıiıeren;günl k LFL,Koçtaş所有商店Satşe&CM&BM%ve bütşe kar laştıtıtıtıtıtımınıe Bilgilize sunarşnewp>”签名
"救命!
.展示
’发送
以
设置omail=Nothing
设置为OK=无
设置olAtt=Nothing
端接头
您可能希望获得mailItem的Inspector.WordEditor
属性,而不是使用HTMLBody(这基本上允许您像Word文档一样与电子邮件进行交互。然后您可以将复制的图表图片粘贴到电子邮件正文中。然后确保保存Excel文件并将其添加到邮件项的附件中。