2012-03-27 137 views
0

这很接近很多不同的问题,并且我已经经历了所有问题,但我无法完全理解最好的方法。使用VB.NET将Excel范围(表格)复制到Outlook电子邮件正文

这是我读过什么(试过)至今:

http://msdn.microsoft.com/en-us/library/ff519602%28v=office.11%29.aspx

http://social.msdn.microsoft.com/Forums/en-US/exceldev/thread/955fca20-c3a3-4523-b2d2-ac9016ae1ff8

我试图RangetoHTML功能转换成vb.net,但我从来没有真正得到它的工作,所以如果任何人有任何提示让这个解决方案的工作,我会喜欢你有任何指导。我直接复制了第二个链接的代码并对其进行了更改,所以我认为它可以工作,但是我在其中一个pastespecial调用中不断收到COM异常。

http://social.msdn.microsoft.com/Forums/en-US/vsto/thread/9d9e1583-064a-4085-bc65-8f809d73dbb3

http://social.msdn.microsoft.com/Forums/en-US/outlookdev/thread/5248288a-0f86-4fe7-8235-2ccb85d2b014/#c50e51e1-87c2-4af9-9195-e0c61eb32bc8

http://www.vboffice.net/sample.html?mnu=2&lang=en&smp=41&cmd=showitem&pub=6

在这里,他们使用Word作为一个停止点建议(或Outlook中的编辑器,这是我的Outlook版本的默认值),这是合理的,但我一直在遇到什么问题:

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 

为了得到这个在vb.net中工作我想我必须打开一个不是activeinspector.wordeditor的文档文档(至少它没有按照他们的方式工作),但是当我这样做时,我没有收到任何数据(说什么都不粘贴),这对我来说似乎是正确的,因为我从来没有把它定义为任何东西。

http://www.outlookcode.com/d/code/htmlimg.htm

我也碰到过这种解决办法,这是我期待到现在,但我希望得到现在这个贴,看看是否有人有任何想法和可能能够指导我更好的路径。

我可以按照要求发布我的代码,但它实际上只是这些链接中的内容的变体,并且试图让它在vb.net中工作。我想一个选择是切换到VBA,但我喜欢VB.NET可以是独立的,更容易找到我的同事。

谢谢Stack Overflow!

回答

0

最后我切换到使用.htmlbody结合所有的表格转换为图像文件,这使我可以保存它们并输入<img src>,所以html保存了一天。额外的好处是,图像将充分显示,而不会截断黑莓,这是我遇到的另一个问题。

相关问题