Reference 调用createJpg(参考表)
下面的代码运行宏并创建jpeg。 如何更改活动工作表的工作表名称(例如:“战略”)。当我复制一张工作表时,由于引用名称的原因,代码不再工作Reference 调用createJpg(参考表),reference,call,Reference,Call,下面的代码运行宏并创建jpeg。 如何更改活动工作表的工作表名称(例如:“战略”)。当我复制一张工作表时,由于引用名称的原因,代码不再工作 With OutMail .SentOnBehalfOfName = "Me@Me.Com" .Display .Subject = "Strategic Sales" .To = "Me@Me.Com" > Call createJpg("Strategic", "A1:F11", "Q
With OutMail
.SentOnBehalfOfName = "Me@Me.Com"
.Display
.Subject = "Strategic Sales"
.To = "Me@Me.Com"
> Call createJpg("Strategic", "A1:F11", "Quota") '
这是一段创建outlook邮件对象并嵌入图像的代码
Sub sendMail()
Application.Calculation=xlManual
应用
.ScreenUpdate=False
.EnableEvents=False
以
Dim TempFilePath作为字符串
'创建新的Microsoft Outlook会话
设置appOutlook=CreateObject(“outlook.application”)
'创建新消息
Set Message=appOutlook.CreateItem(olMailItem)
带着信息
.Subject=“我的邮件自动对象”
.HTMLBody=“”_
&“”_
&“您好,
每周仪表板可用”_
&“
在下面查找概述:
”
'首先,我们将图像创建为JPG文件
**调用createJpg(“仪表板”、“B8:H9”、“仪表板文件”)**
'我们附加了位置为0的嵌入图像(使附件隐藏)
TempFilePath=Environ$(“temp”)和“\”
.Attachments.Add TempFilePath&“DashboardFile.jpg”,olByValue,0
'然后我们将一个html链接添加到此图像
'注意,您可以自定义宽度和高度-非强制性
.HTMLBody=.HTMLBody&“
每周报告:
”_
&“
”_
&“向您问好,
Ed”
.To=”contact1@email.com; contact2@email.com"
.Cc=”contact3@email.com"
.展示
’发送
以
应用
.ScreenUpdate=True
.EnableEvents=True
以
Application.Calculation=xlCalculationAutomatic
端接头
您需要创建createJpg函数,该函数将范围转换为jpg文件。
子createJpg(名称表为字符串,名称范围为字符串,名称文件为字符串)
此工作簿。激活
工作表(名称表)。激活
Set-Plage=ThisWorkbook.Worksheets(名称表).Range(名称范围)
复制图片
使用此工作簿。工作表(名称表)。图表对象。添加(Plage.Left,
面层。顶部,面层。宽度,面层。高度)
.激活
.Chart.Paste
.Chart.Export Environ$(“temp”)和“\”名称文件和“.jpg”、“jpg”
以
工作表(名称表)。图表对象(工作表(名称表)。图表对象。计数)。删除
设为零
端接头
对于那些不能立即识别这一点的人,我们可以使用编写此代码的语言吗?更具体地说,使用的语言是excel VBA,用于创建outlook邮件对象和嵌入图像。我把整个代码放在下面。
Sub sendMail()
Application.Calculation = xlManual
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
Dim TempFilePath As String
'Create a new Microsoft Outlook session
Set appOutlook = CreateObject("outlook.application")
'create a new message
Set Message = appOutlook.CreateItem(olMailItem)
With Message
.Subject = "My mail auto Object"
.HTMLBody = "<span LANG=EN>" _
& "<p class=style2><span LANG=EN><font FACE=Calibri SIZE=3>" _
& "Hello,<br ><br >The weekly dashboard is available " _
& "<br>Find below an overview :<BR>"
'first we create the image as a JPG file
**Call createJpg("Dashboard", "B8:H9", "DashboardFile")**
'we attached the embedded image with a Position at 0 (makes the attachment hidden)
TempFilePath = Environ$("temp") & "\"
.Attachments.Add TempFilePath & "DashboardFile.jpg", olByValue, 0
'Then we add an html <img src=''> link to this image
'Note than you can customize width and height - not mandatory
.HTMLBody = .HTMLBody & "<br><B>WEEKLY REPPORT:</B><br>" _
& "<img src='cid:DashboardFile.jpg'" & "width='814' height='33'><br>" _
& "<br>Best Regards,<br>Ed</font></span>"
.To = "contact1@email.com; contact2@email.com"
.Cc = "contact3@email.com"
.Display
'.Send
End With
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
Application.Calculation = xlCalculationAutomatic
End Sub
You need to create createJpg function which transform a range into a jpg file.
Sub createJpg(Namesheet As String, nameRange As String, nameFile As String)
ThisWorkbook.Activate
Worksheets(Namesheet).Activate
Set Plage = ThisWorkbook.Worksheets(Namesheet).Range(nameRange)
Plage.CopyPicture
With ThisWorkbook.Worksheets(Namesheet).ChartObjects.Add(Plage.Left,