Это близко ко многим различным вопросам, которые были заданы, и я прошел через все их, но я не могу определиться с лучшим подходом.
Это то, что я прочитал (и попробовал) до сих пор:
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, но мне так и не удалось заставить ее работать, поэтому, если у кого-нибудь есть какие-либо советы по запуску этого решения, я буду рад любым вашим советам. Я скопировал код из второй ссылки напрямую и изменил его, так что я думал, что он будет работать, но я продолжал получать исключение COM в одном из pastespecial вызовов.
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, я думаю, что мне нужно открыть документ Word, а не activeinspector.wordeditor (по крайней мере, он работает не так, как у них там), но когда я делаю это, я не получаю любые данные (говорит, что ничего не вставлено) из вызова wdRn.paste, что мне кажется правильным, поскольку я никогда не определял их как что-либо.
http://www.outlookcode.com/d/code/htmlimg.htm
Я также сталкивался с этим решением, которое я сейчас изучаю, но я хотел опубликовать его сейчас, чтобы узнать, есть ли у кого-нибудь какие-нибудь мысли и, возможно, сможет направить меня к лучшему пути.
Я могу опубликовать свой код по запросу, но на самом деле это всего лишь варианты того, что находится в этих ссылках, и я пытаюсь заставить его работать в vb.net. Я полагаю, что можно было бы переключиться на VBA, но мне нравится, что VB.NET может быть автономным и его проще найти моим коллегам.
Спасибо, переполнение стека!