【发布时间】:2012-05-29 06:23:32
【问题描述】:
所以这是我之前提出的问题的更精致版本。很长一段时间以来,我一直试图解决这个问题。我找到了一个有意义的网站,但由于某种原因我无法实现它。我只是希望能够将 excel 中的信息(表格、图表、范围等)复制到 Outlook 电子邮件的正文中。
从这里: http://pastebin.com/4VWmcrx6
它暗示:
Using VB.NET to copy Excel Range (a table) to body of Outlook email
Sub CopyFromExcelIntoEMail()
Dim Doc As Word.Document
Dim wdRn As Word.Range
Dim Xl As Excel.Application
Dim Ws As Excel.Worksheet
Dim xlRn As Excel.Range
Set Doc = Application.ActiveInspector.WordEditor
Set wdRn = Doc.Range
Set Xl = GetObject(, "Excel.Application")
Set Ws = Xl.Workbooks("Mappe1.xls").Worksheets(1)
Set xlRn = Ws.Range("b2", "c6")
xlRn.Copy
wdRn.Paste
End Sub
我尝试了它的几种变体,但都没有运气。
Imports System.Data
Imports System.IO
Imports Microsoft.Office.Interop
Imports Office = Microsoft.Office.Core
Imports xlNS = Microsoft.Office.Interop.Excel
Imports System.Runtime.InteropServices
Imports System.Net.Mail
Imports excel1 = Microsoft.Office.Interop.Excel
Imports word1 = Microsoft.Office.Interop.Word
Imports outlook1 = Microsoft.Office.Interop.Outlook
Module Module1
Sub Main()
Dim Doc As Word.Document
Dim wdRn As Word.Range
Dim Xl As Excel.Application
Dim Ws As Excel.Worksheet
Dim xlRn As Excel.Range
Dim application As New Outlook.Application
Dim mail As Outlook.MailItem = CType(application.CreateItem(Outlook.OlItemType.olMailItem), Outlook.MailItem)
Doc = Application.ActiveInspector.WordEditor
wdRn = Doc.Range
Xl = GetObject("C:\Users\ajohnson\Desktop\Book1.xlsx", "Excel.Application")
Ws = Xl.Workbooks("Book1").Worksheets(1)
xlRn = Ws.Range("a1", "d2")
xlRn.Copy()
With mail
.Body = wdRn.Paste() & vbCr & wdRn.Paste()
End With
End Sub
End Module
这似乎不应该那么困难,而且我对正在发生的事情有一个合理的了解,但无论我尝试什么都行不通。该代码在
上引发 com 异常Doc = Application.ActiveInspector.WordEditor
我也尝试使用提供的代码,但它说应用程序未定义。
任何帮助将不胜感激,一如既往地感谢您。
对于后代(我到处都看到这个问题):@Siddharth Rout 的解决方案肯定会奏效,但如果你想让它不会在黑莓上被截断(它实际上出现了,我发誓)更好方法可以在 cmets 中找到。
Sub Export_Range_Images()
' =========================================
' Code to save selected Excel Range as Image
' =========================================
Dim oRange As Range
Dim oCht As Chart
Dim oImg As Picture
Set oRange = Range("A1:B2")
Set oCht = Charts.Add
oRange.CopyPicture xlScreen, xlPicture
oCht.Paste
oCht.Export FileName:="C:\temp\SavedRange.jpg", Filtername:="JPG"
End Sub
这来自here,以及:
.HTMLBody="< img src='C:\Temp\logo.jpg'>" & vbCr & "< img src='C:\Temp\logo.jpg'>"
来自here.
您的想法是创建您感兴趣的范围/表格的 .jpg 文件,然后使用 html 将它们放入电子邮件的正文中。在这两种方法之间,您应该能够让它发挥作用。
【问题讨论】: