2012-11-05 192 views
0

我想创建一个宏,它从excel中获取一张表并将其粘贴到电子邮件中并发送。我可以做到这一点,但桌子仍然是一张桌子,我想粘贴特殊图像。我尝试了很多不同的方法和大量的谷歌搜索,但无济于事。请帮助...谢谢。Excel VBA到电子邮件

到目前为止的代码

TempFile = Environ$("temp") & "/" & Format(Now, "dd-mm-yy h-mm-ss") & ".htm" 

'Copy the range and create a new workbook to past the data in 
rng.Copy 
Set TempWB = Workbooks.Add(1) 
With TempWB.Sheets(1) 
    .Cells(1).PasteSpecial Format:="Picture (Enhanced Metafile)" 'Paste:=2 
    .Cells(1).PasteSpecial xlPasteValues, , False, False 
    .Cells(1).PasteSpecial xlPasteFormats, , False, False 
    .Cells(1).Select 
    Application.CutCopyMode = False 

    On Error Resume Next 
    .DrawingObjects.Visible = True 
    .DrawingObjects.Delete 
    On Error GoTo 0 
End With 


'Publish the sheet to a htm file 
With TempWB.PublishObjects.Add(_ 
    SourceType:=xlSourceRange, _ 
    Filename:=TempFile, _ 
    Sheet:=TempWB.Sheets(1).Name, _ 
    Source:=TempWB.Sheets(1).UsedRange.Address, _ 
    HtmlType:=xlHtmlStatic) 
    .Publish (True) 
End With 

'Read all data from the htm file into RangetoHTML 
Set fso = CreateObject("Scripting.FileSystemObject") 
Set ts = fso.GetFile(TempFile).OpenAsTextStream(1, -2) 
RangetoHTML = ts.ReadAll 
ts.Close 
RangetoHTML = Replace(RangetoHTML, "align=center x:publishsource=", _ 
         "align=left x:publishsource=") 

'Close TempWB 
TempWB.Close savechanges:=False 
+0

您能简单介绍一下你已经尝试的途径,以便试图帮助或可能发现在你的做法是错误的时候别人不犯同样的错误 – Ren

+0

见http://www.htmlgoodies.com/beyond /css/article.php/3679231/How-to-Create-Great-HTML-Emails-with-CSS.htm。图像必须采用特定的格式。 – Chloe

回答

0

下面是选定的表复制为位图图片,那么你可以使用标准的粘贴命令表粘贴为pticture的代码。

Selection.CopyPicture Appearance:=xlScreen, Format:=xlBitmap 
+0

所以我更新到: – user1800708