这已接近很多不同的问题,而且我已经完成了所有这些问题,但我无法理清最佳方法。
这是我到目前为止所阅读(并尝试过)的内容:
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://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中运行,我想我必须打开一个word文档而不是activeinspector.wordeditor(至少它不像他们那样工作的方式),但是当我这样做时,我没有得到来自wdRn.paste调用的任何数据(没有任何内容被粘贴),这对我来说似乎是正确的,因为我从未将其定义为任何内容。
http://www.outlookcode.com/d/code/htmlimg.htm
我也遇到了这个解决方案,我现在正在调查,但我想现在发布这个解决方案,看看是否有人有任何想法,并且可能能够引导我走上更好的道路。
我可以按照要求发布我的代码,但它实际上只是这些链接中的内容的变体,并试图让它在vb.net中运行。我想一个选择是切换到VBA,但我喜欢VB.NET可以是独立的,更容易找到我的同事。
谢谢Stack Overflow!
答案 0 :(得分:0)
最后,我切换到使用.htmlbody
并将所有表格转换为图像文件,这样我就可以保存它们并使用<img src>
输入它们,因此html保存了这一天。额外的好处是图像将完全显示而不会截断黑莓,这是我遇到的另一个问题。