VBA代码将Excel范围复制并粘贴到Outlook中

迈克·马歇尔

我需要将范围从Excel文件复制到Outlook,然后将其作为电子邮件发送。它需要嵌入到电子邮件本身中。我发现这段代码很好用,但有一个例外:它使范围位于Outlook中“页面”的中间,我需要将其向左对齐。

我假设这是用HTML完成的,但我不知道该语言。这是我正在使用的代码:

Option Explicit

Public Sub prcSendMail()
 Dim objOutlook As Object, objMail As Object

 Set objOutlook = CreateObject(Class:="Outlook.Application")
 Set objMail = objOutlook.CreateItem(0)

 With objMail
     .To = "[email protected]"
     .Subject = "Hallo"
     .HTMLBody = fncRangeToHtml("Summary", "B2:G26")
     .Display 'zum testen
 '    .Send
 End With

 Set objMail = Nothing
 Set objOutlook = Nothing

 End Sub

 Private Function fncRangeToHtml( _
 strWorksheetName As String, _
 strRangeAddress As String) As String

 Dim objFilesytem As Object, objTextstream As Object, objShape As Shape
 Dim strFilename As String, strTempText As String
 Dim blnRangeContainsShapes As Boolean

 strFilename = Environ$("temp") & "\" & _
     Format(Now, "dd-mm-yy_h-mm-ss") & ".htm"

 ThisWorkbook.PublishObjects.Add( _
     SourceType:=xlSourceRange, _
     Filename:=strFilename, _
     Sheet:=strWorksheetName, _
     Source:=strRangeAddress, _
     HtmlType:=xlHtmlStatic).Publish True

 Set objFilesytem = CreateObject("Scripting.FileSystemObject")
 Set objTextstream = objFilesytem.GetFile(strFilename).OpenAsTextStream(1, -2)
 strTempText = objTextstream.ReadAll
 objTextstream.Close

 For Each objShape In Worksheets(strWorksheetName).Shapes
     If Not Intersect(objShape.TopLeftCell, Worksheets( _
         strWorksheetName).Range(strRangeAddress)) Is Nothing Then

         blnRangeContainsShapes = True
         Exit For

     End If
 Next

 If blnRangeContainsShapes Then _
     strTempText = fncConvertPictureToMail(strTempText, Worksheets(strWorksheetName))

 fncRangeToHtml = strTempText

 Set objTextstream = Nothing
 Set objFilesytem = Nothing

 Kill strFilename

 End Function

 Public Function fncConvertPictureToMail(strTempText As String, objWorksheet As Worksheet) As String

 Const HTM_START = "<link rel=File-List href="
 Const HTM_END = "/filelist.xml"

 Dim strTemp As String
 Dim lngPathLeft As Long

 lngPathLeft = InStr(1, strTempText, HTM_START)

 strTemp = Mid$(strTempText, lngPathLeft, InStr(lngPathLeft, strTempText, ">") - lngPathLeft)
 strTemp = Replace(strTemp, HTM_START & Chr$(34), "")
 strTemp = Replace(strTemp, HTM_END & Chr$(34), "")
 strTemp = strTemp & "/"

 strTempText = Replace(strTempText, strTemp, Environ$("temp") & "\" & strTemp)

 fncConvertPictureToMail = strTempText

 End Function

是否需要一些代码来对齐我要复制到Outlook中的范围?我有W7 x64,Excel 2013和Outlook2013。谢谢!

垃圾桶

在您的后添加此 objTextstream.Close

strTempText = Replace(strTempText, "align=center x:publishsource=", "align=left x:publishsource=")

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在VBA Excel中多次将一个范围复制并粘贴到另一个范围的代码

来自分类Dev

使用VBA将动态范围复制并粘贴到Excel中的新工作表

来自分类Dev

Excel 2010将范围和图片粘贴到Outlook中

来自分类Dev

Excel VBA - 遍历文件夹中的文件,复制范围,粘贴到此工作簿中

来自分类Dev

将Excel图表粘贴到刚粘贴了使用VBA的范围的Powerpoint中

来自分类Dev

VBA-将代码复制并粘贴到目标位置

来自分类Dev

在VBA Excel中复制粘贴范围

来自分类Dev

使用EXCEL VBA时如何将数据复制并粘贴到所选文件中

来自分类Dev

使用 VBA 将所选列复制并粘贴到 Excel 中的表尾

来自分类Dev

使用 VBA 模块代码将数据复制并粘贴到多个工作表的同一范围内

来自分类Dev

动态范围无法正确粘贴到Excel VBA中

来自分类Dev

Excel VBA:复制/粘贴范围

来自分类Dev

Excel VBA 从 Excel 复制范围并将其粘贴到 Word 标题文本框

来自分类Dev

将文本粘贴到Excel注释VBA中

来自分类Dev

将工作表复制/粘贴到没有该工作表的VBA代码的新工作簿中

来自分类Dev

使用Excel VBA宏将一行数据复制并粘贴到单独的行和交错的列中

来自分类Dev

Excel VBA代码可在第一个单元格的值更改时复制一行中的单元格区域并粘贴到不同的工作表中,但行/范围相同

来自分类Dev

在Outlook中粘贴Excel范围

来自分类Dev

在Outlook中粘贴Excel范围

来自分类Dev

VBA 复制范围值并粘贴到另一个工作表中

来自分类Dev

如何在Excel VBA中复制筛选数据范围并将其粘贴到新工作表中(不使用剪贴板)

来自分类Dev

MS Project VBA:尝试将复制的任务从 .MPP 粘贴到 Excel

来自分类Dev

Excel-VBA循环-从单元格复制公式,粘贴到单元格中,然后复制特殊粘贴

来自分类Dev

使用Outlook VBA从Excel文件复制/粘贴。

来自分类Dev

使用VBA将单元格范围从MS Excel粘贴到MS PowerPoint

来自分类Dev

使用VBA将Excel范围粘贴到Powerpoint模板的某些幻灯片中

来自分类Dev

Excel VBA复制并粘贴整个范围与条件?

来自分类Dev

如何将数据复制并粘贴到使用for循环在VBA中创建的工作表中?

来自分类Dev

Excel VBA复制并粘贴到现有数据末尾的其他工作簿中

Related 相关文章

  1. 1

    在VBA Excel中多次将一个范围复制并粘贴到另一个范围的代码

  2. 2

    使用VBA将动态范围复制并粘贴到Excel中的新工作表

  3. 3

    Excel 2010将范围和图片粘贴到Outlook中

  4. 4

    Excel VBA - 遍历文件夹中的文件,复制范围,粘贴到此工作簿中

  5. 5

    将Excel图表粘贴到刚粘贴了使用VBA的范围的Powerpoint中

  6. 6

    VBA-将代码复制并粘贴到目标位置

  7. 7

    在VBA Excel中复制粘贴范围

  8. 8

    使用EXCEL VBA时如何将数据复制并粘贴到所选文件中

  9. 9

    使用 VBA 将所选列复制并粘贴到 Excel 中的表尾

  10. 10

    使用 VBA 模块代码将数据复制并粘贴到多个工作表的同一范围内

  11. 11

    动态范围无法正确粘贴到Excel VBA中

  12. 12

    Excel VBA:复制/粘贴范围

  13. 13

    Excel VBA 从 Excel 复制范围并将其粘贴到 Word 标题文本框

  14. 14

    将文本粘贴到Excel注释VBA中

  15. 15

    将工作表复制/粘贴到没有该工作表的VBA代码的新工作簿中

  16. 16

    使用Excel VBA宏将一行数据复制并粘贴到单独的行和交错的列中

  17. 17

    Excel VBA代码可在第一个单元格的值更改时复制一行中的单元格区域并粘贴到不同的工作表中,但行/范围相同

  18. 18

    在Outlook中粘贴Excel范围

  19. 19

    在Outlook中粘贴Excel范围

  20. 20

    VBA 复制范围值并粘贴到另一个工作表中

  21. 21

    如何在Excel VBA中复制筛选数据范围并将其粘贴到新工作表中(不使用剪贴板)

  22. 22

    MS Project VBA:尝试将复制的任务从 .MPP 粘贴到 Excel

  23. 23

    Excel-VBA循环-从单元格复制公式,粘贴到单元格中,然后复制特殊粘贴

  24. 24

    使用Outlook VBA从Excel文件复制/粘贴。

  25. 25

    使用VBA将单元格范围从MS Excel粘贴到MS PowerPoint

  26. 26

    使用VBA将Excel范围粘贴到Powerpoint模板的某些幻灯片中

  27. 27

    Excel VBA复制并粘贴整个范围与条件?

  28. 28

    如何将数据复制并粘贴到使用for循环在VBA中创建的工作表中?

  29. 29

    Excel VBA复制并粘贴到现有数据末尾的其他工作簿中

热门标签

归档