所以这是我之前提出的问题的一个更精致的版本。很长一段时间以来,我一直试图解决这个问题。我找到了一个有意义的网站,但由于某种原因我无法实现它。我只想能够将 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
似乎它不应该那么困难,而且我对正在发生的事情有一个合理的想法,但无论我尝试什么,它都不起作用。该代码在
Doc = Application.ActiveInspector.WordEditor
我也尝试使用给出的代码,但它说应用程序未定义。
任何帮助将不胜感激,一如既往地感谢您。
对于后代(我到处都看到这个问题):@Siddharth Rout 的解决方案肯定会奏效,但如果你想让它不会在黑莓上被截断(它实际上出现了,我发誓)一个更好的方法可以是在评论中找到。
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
这来自这里,以及:
.HTMLBody="< img src='C:\Temp\logo.jpg'>" & vbCr & "< img src='C:\Temp\logo.jpg'>"
这个想法是您创建您感兴趣的范围/表格的 .jpg 文件,然后使用 html 将它们放入电子邮件的正文中。在这两种方法之间,您应该能够使其正常工作。