Reference 调用createJpg(参考表)

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

下面的代码运行宏并创建jpeg。 如何更改活动工作表的工作表名称(例如:“战略”)。当我复制一张工作表时,由于引用名称的原因,代码不再工作

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,