【发布时间】:2012-03-27 17:39:13
【问题描述】:
这接近于许多不同的问题,我已经解决了所有问题,但我无法确定最佳方法。
这是我迄今为止阅读(并尝试过)的内容:
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 中工作,我想我必须打开一个不是 activeinspector.wordeditor 的 word 文档(至少它不像他们那样工作),但是当我这样做时,我没有得到wdRn.paste 调用中的任何数据(说什么都没有粘贴),这对我来说似乎是正确的,因为我从未将它定义为任何东西。
http://www.outlookcode.com/d/code/htmlimg.htm
我也遇到了那个解决方案,我现在正在研究这个解决方案,但我想现在发布这个帖子,看看是否有人有任何想法并可能能够引导我走上更好的道路。
我可以按要求发布我的代码,但它实际上只是这些链接中的内容的变体,并试图让它在 vb.net 中工作。我想一个选择是切换到 VBA,但我喜欢 VB.NET 可以是独立的,并且更容易与我的同事联系。
谢谢堆栈溢出!
【问题讨论】:
标签: .net vb.net excel email outlook