Vba将Excel范围转换为图片并发送到Outlook,将文本写入正文
我想从受保护的Excel工作表中复制一个范围,并将其作为图片粘贴到Outlook中,编写一些文本并显示它 我下面的代码首先粘贴文本,然后粘贴图片,但同时删除文本。但是我想要图片中的文本和文本(从Excel转换成图片的范围) 有谁能帮我弄到它吗Vba将Excel范围转换为图片并发送到Outlook,将文本写入正文,excel,image,vba,outlook,range,Excel,Image,Vba,Outlook,Range,我想从受保护的Excel工作表中复制一个范围,并将其作为图片粘贴到Outlook中,编写一些文本并显示它 我下面的代码首先粘贴文本,然后粘贴图片,但同时删除文本。但是我想要图片中的文本和文本(从Excel转换成图片的范围) 有谁能帮我弄到它吗 Sub Send_Email() Dim r As Range Set r = Range("NR7:OD39") Dim outlookApp As Outlook.Application Set outlookApp = C
Sub Send_Email()
Dim r As Range
Set r = Range("NR7:OD39")
Dim outlookApp As Outlook.Application
Set outlookApp = CreateObject("Outlook.Application")
Dim OutMail As Outlook.MailItem
Set OutMail = outlookApp.CreateItem(olMailItem)
Dim StrFileName As String
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Sheets("table1").Select
ActiveSheet.Unprotect Password:="blabla"
ActiveSheet.Outline.ShowLevels RowLevels:=8, ColumnLevels:=8
r.Select
r.Copy
OutMail.Display
Dim Email As Word.Document
Set Email = OutMail.GetInspector.WordEditor
With OutMail
.To = "Name.surname@amazon.com"
.CC = "Surname.Name@amazon.com"
.Subject = "Subject"
.Body = "Hi everybody," & vbNewLine & "actual Status"
.Display
End With
Email.Range.PasteAndFormat wdChartPicture
ActiveSheet.Outline.ShowLevels RowLevels:=1, ColumnLevels:=1
ActiveSheet.Protect Password:="blabla"
End Sub
从这一行开始
Set Email = OutMail.GetInspector.WordEditor
这应该做到:
Dim ran as Word.Range
Set Email = OutMail.GetInspector.WordEditor
With OutMail
.To = "Name.surname@amazon.com"
.cc = "Surname.Name@amazon.com"
.Subject = "Subject"
.Body = "Hi everybody," & vbNewLine & "actual Status"
.Display
End With
Email.Range.InsertAfter vbCrLf
Set ran = Email.Range(Email.Content.End - 1, Email.Content.End - 1)
ran.PasteAndFormat wdChartPicture
不是Outlook用户,也不在我的计算机上,但
Email.Range.PasteAndFormat wdchart picture
使图片成为主体。因此,您可能需要将文字和图片添加到电子邮件中,然后将电子邮件设置为正文。现在不能再精确了,但我希望这能有所帮助。这给了我一个错误:Set r=Email.Range(Email.Content.End-1,Email.Content.End-1)
Oops,对不起。您已经定义了r
,并且它被定义为Excel.Range
。请参阅更改的代码。谢谢,它工作正常。尽管如此,这幅图还是将文本分隔开了。我怎样才能把它粘贴到文本之后,正如你看到的,我有两行文本。很有趣。如果线未以断线结束,则锚点似乎放在线的开头,如本例所示。不过只需稍加修改,请参见上面编辑的代码。注意:如果文本和图片之间的间距看起来太大,不符合您的口味,则使用.InsertAfter vbLf
。