2016-03-02 8 views
2

EDIT: Добавлен фрагмент ближе к фактической строке. Я пытаюсь манипулировать в нижней части сообщения. Это не дословно, удаленная ключевая информация, но я скопировал и вставил из письма, которое я пытаюсь переправить. Просто пытаюсь извлечь таблицу в середине и вперёд.Удалить текст и гиперссылки, затем перенаправить

Я хочу удалить определенный текст по электронной почте, которую я получил, удалить гиперссылки, сохранить форматирование, а затем переслать на конкретный адрес.

В принципе, электронная почта структурирована как таковой:

«Уважаемый пользователь,

пожалуйста, найти соответствующую информацию ниже

базы данных: записи нажмите здесь для просмотра этой онлайн

  • Настольный заголовок
  • Column Header
  • Запись 1
  • Запись 2
  • Запись 3
  • ...
  • Final Record

Если у вас возникли проблемы с помощью ссылки выше, вставьте эту ссылку в свой адрес bar, чтобы войти в онлайн базу данных:

someebsite.database.net/tr/vuioahdf

Это автоматизированная электронная почта ...»

Мне нужно, чтобы удалить текст перед таблицей, удалите гиперссылок, сохранить форматирование, и вперед.

Я пробовал следующее.

Sub RemoveExpression() 

Dim Insp As Inspector 
Dim obj As Object 

    Set Insp = Application.ActiveInspector 
    Set obj = Insp.CurrentItem 

    obj.Body = Replace(obj.Body, "Dear user, please find the relevant information below database: records click here to view this online - Table header " & _ 
            vbNewLine & "If you have trouble using the link above, paste this link in your address bar to go to the online database http://somewhere.database.net/tr/vuioahdf This is an automated email...", "") 

    Set obj = Nothing 
    Set Insp = Nothing 

End Sub 

Это дает мне ошибку в определении объекта, но это нечто похожее на то, что я ищу. Удалите текст до и после таблицы, удалите гиперссылки, а затем перейдите на конкретный адрес. Возможно, совсем не обязательно удалять гиперссылки, поскольку это в основном текст перед и после таблицы, но в заголовке таблицы есть гиперссылка.

Email Я пытаюсь манипулировать:

Dear User,<br> 
 
<br> 
 
Please find below drawing received last week for project 
 
<br> <br> 
 
<b><u></u>Document Control: Projects<u></u></b><br> 
 
Click <a href="somehwere.net" target="_blank">here</a> to see this report on the database. 
 
<br> <br> 
 
<div style="font-size:70%;font-family:Verdana,Helvetica,Geneva,sans-serif"> 
 
<div> 
 
<table width="100%" cellpadding="0" cellspacing="0"> 
 
<tr style="background-color:#c4defb"> 
 
<td style="border-top:1px solid #55a0ef;border-bottom:1px solid #55a0ef"> 
 
<table width="100%" cellpadding="0" cellspacing="0"> 
 
<tr> 
 
<td style="width:200px;padding:4px 8px;font-family:Helvetica Neue,Helvetica,Tahoma,Arial,sans-serif;color:#505050;font-weight:normal;font-size:9pt"> 
 
<a style="font-family:Helvetica Neue,Helvetica,Tahoma,Arial,sans-serif;color:#505050;font-weight:normal;font-size:9pt;text-decoration:none" href="somewhere.net" title="See this report" target="_blank">Full Report</a> 
 
| <a style="font-family:Helvetica Neue,Helvetica,Tahoma,Arial,sans-serif;color:#505050;font-weight:normal;font-size:9pt;text-decoration:none" href="somewhere.net" title="Edit all the Drawings shown below" target="_blank">Grid Edit</a> 
 
</td> 
 
<td style="width:200px;padding:4px 8px;font-family:Helvetica Neue,Helvetica,Tahoma,Arial,sans-serif;color:#505050;font-weight:normal;font-size:9pt" align="right"> 
 
<span><label>Date Created</label> is during <label> &#39;last 2 wk&#39; </label> AND ...</span> <span>11 Drawings</span> 
 
</td> 
 
</tr> 
 
</table> 
 
</td> 
 
</tr> 
 
<tr> 
 
<td> 
 
<table width="100%" cellspacing="0" cellpadding="0"> 
 
<thead style="display:table-header-group"> 
 
<tr> 
 
<td style="font-family:Helvetica Neue,Helvetica,Tahoma,Arial,sans-serif;border-left:1px solid #ccc;border-bottom:1px solid #ccc;background-color:#f6f9fd;padding:3px 4px;font-weight:bold;font-size:10pt;color:#111111"> </td> 
 
<td align="right" style="font-family:Helvetica Neue,Helvetica,Tahoma,Arial,sans-serif;border-left:1px solid #ccc;border-bottom:1px solid #ccc;background-color:#f6f9fd;padding:3px 4px;font-weight:bold;font-size:10pt;color:#111111"><div></div><span>Date Created</span><span></span></td> 
 
<td style="font-family:Helvetica Neue,Helvetica,Tahoma,Arial,sans-serif;border-left:1px solid #ccc;border-bottom:1px solid #ccc;background-color:#f6f9fd;padding:3px 4px;font-weight:bold;font-size:10pt;color:#111111"><span>Project Name</span><span></span></td> 
 
<td style="font-family:Helvetica Neue,Helvetica,Tahoma,Arial,sans-serif;border-left:1px solid #ccc;border-bottom:1px solid #ccc;background-color:#f6f9fd;padding:3px 4px;font-weight:bold;font-size:10pt;color:#111111"><span>Sub Project</span><span></span></td> 
 
<td style="font-family:Helvetica Neue,Helvetica,Tahoma,Arial,sans-serif;border-left:1px solid #ccc;border-bottom:1px solid #ccc;background-color:#f6f9fd;padding:3px 4px;font-weight:bold;font-size:10pt;color:#111111"><span>Project Description</span><span></span></td> 
 
<td style="font-family:Helvetica Neue,Helvetica,Tahoma,Arial,sans-serif;border-left:1px solid #ccc;border-bottom:1px solid #ccc;background-color:#f6f9fd;padding:3px 4px;font-weight:bold;font-size:10pt;color:#111111"><span>Drawing Number</span><span></span></td> 
 
<td style="font-family:Helvetica Neue,Helvetica,Tahoma,Arial,sans-serif;border-left:1px solid #ccc;border-bottom:1px solid #ccc;background-color:#f6f9fd;padding:3px 4px;font-weight:bold;font-size:10pt;color:#111111"><span>Revision</span><span></span></td> 
 
<td style="font-family:Helvetica Neue,Helvetica,Tahoma,Arial,sans-serif;border-left:1px solid #ccc;border-bottom:1px solid #ccc;background-color:#f6f9fd;padding:3px 4px;font-weight:bold;font-size:10pt;color:#111111"><span>Title</span><span></span></td> 
 
<td style="font-family:Helvetica Neue,Helvetica,Tahoma,Arial,sans-serif;border-left:1px solid #ccc;border-bottom:1px solid #ccc;background-color:#f6f9fd;padding:3px 4px;font-weight:bold;font-size:10pt;color:#111111"><span>Transmittal</span><span></span></td> 
 
</tr> 
 
</thead> 
 
<tbody style="display:table-row-group"> 
 
<tr> 
 
<td nowrap style="border-left:1px solid #ccc;border-bottom:1px solid #ccc;padding:3px 4px;font-size:10pt;color:#111111"> </td> 
 
<td style="font-family:Helvetica Neue,Helvetica,Tahoma,Arial,sans-serif;border-left:1px solid #ccc;border-bottom:1px solid #ccc;padding:3px 4px;font-size:10pt;color:#111111" align="right">02-18-2016</td> 
 
<td style="font-family:Helvetica Neue,Helvetica,Tahoma,Arial,sans-serif;border-left:1px solid #ccc;border-bottom:1px solid #ccc;padding:3px 4px;font-size:10pt;color:#111111">Rig xxx</td> 
 
<td style="font-family:Helvetica Neue,Helvetica,Tahoma,Arial,sans-serif;border-left:1px solid #ccc;border-bottom:1px solid #ccc;padding:3px 4px;font-size:10pt;color:#111111">120</td> 
 
<td style="font-family:Helvetica Neue,Helvetica,Tahoma,Arial,sans-serif;border-left:1px solid #ccc;border-bottom:1px solid #ccc;padding:3px 4px;font-size:10pt;color:#111111">Structure</td> 
 
<td style="font-family:Helvetica Neue,Helvetica,Tahoma,Arial,sans-serif;border-left:1px solid #ccc;border-bottom:1px solid #ccc;padding:3px 4px;font-size:10pt;color:#111111">00813-121-000-001WM</td> 
 
<td style="font-family:Helvetica Neue,Helvetica,Tahoma,Arial,sans-serif;border-left:1px solid #ccc;border-bottom:1px solid #ccc;padding:3px 4px;font-size:10pt;color:#111111">0</td> 
 
<td style="font-family:Helvetica Neue,Helvetica,Tahoma,Arial,sans-serif;border-left:1px solid #ccc;border-bottom:1px solid #ccc;padding:3px 4px;font-size:10pt;color:#111111">REAR FRAME</td> 
 
<td style="font-family:Helvetica Neue,Helvetica,Tahoma,Arial,sans-serif;border-left:1px solid #ccc;border-bottom:1px solid #ccc;padding:3px 4px;font-size:10pt;color:#111111">02182016</td> 
 
</tr> 
 
<tr style="background-color:#f2f2f2"> 
 
<td nowrap style="border-left:1px solid #ccc;border-bottom:1px solid #ccc;padding:3px 4px;font-size:10pt;color:#111111"> </td> 
 
<td style="font-family:Helvetica Neue,Helvetica,Tahoma,Arial,sans-serif;border-left:1px solid #ccc;border-bottom:1px solid #ccc;padding:3px 4px;font-size:10pt;color:#111111" align="right">02-18-2016</td> 
 
<td style="font-family:Helvetica Neue,Helvetica,Tahoma,Arial,sans-serif;border-left:1px solid #ccc;border-bottom:1px solid #ccc;padding:3px 4px;font-size:10pt;color:#111111">Rig xxx</td> 
 
<td style="font-family:Helvetica Neue,Helvetica,Tahoma,Arial,sans-serif;border-left:1px solid #ccc;border-bottom:1px solid #ccc;padding:3px 4px;font-size:10pt;color:#111111">120</td> 
 
<td style="font-family:Helvetica Neue,Helvetica,Tahoma,Arial,sans-serif;border-left:1px solid #ccc;border-bottom:1px solid #ccc;padding:3px 4px;font-size:10pt;color:#111111">Structure</td> 
 
<td style="font-family:Helvetica Neue,Helvetica,Tahoma,Arial,sans-serif;border-left:1px solid #ccc;border-bottom:1px solid #ccc;padding:3px 4px;font-size:10pt;color:#111111">00813-121-000-000</td> 
 
<td style="font-family:Helvetica Neue,Helvetica,Tahoma,Arial,sans-serif;border-left:1px solid #ccc;border-bottom:1px solid #ccc;padding:3px 4px;font-size:10pt;color:#111111">0</td> 
 
<td style="font-family:Helvetica Neue,Helvetica,Tahoma,Arial,sans-serif;border-left:1px solid #ccc;border-bottom:1px solid #ccc;padding:3px 4px;font-size:10pt;color:#111111">REAR ASSEMBLY</td> 
 
<td style="font-family:Helvetica Neue,Helvetica,Tahoma,Arial,sans-serif;border-left:1px solid #ccc;border-bottom:1px solid #ccc;padding:3px 4px;font-size:10pt;color:#111111">01282016</td> 
 
</tr> 
 
<tr> 
 
<td nowrap style="border-left:1px solid #ccc;border-bottom:1px solid #ccc;padding:3px 4px;font-size:10pt;color:#111111"> </td> 
 
<td style="font-family:Helvetica Neue,Helvetica,Tahoma,Arial,sans-serif;border-left:1px solid #ccc;border-bottom:1px solid #ccc;padding:3px 4px;font-size:10pt;color:#111111" align="right">02-18-2016</td> 
 
<td style="font-family:Helvetica Neue,Helvetica,Tahoma,Arial,sans-serif;border-left:1px solid #ccc;border-bottom:1px solid #ccc;padding:3px 4px;font-size:10pt;color:#111111">Rig xxx</td> 
 
<td style="font-family:Helvetica Neue,Helvetica,Tahoma,Arial,sans-serif;border-left:1px solid #ccc;border-bottom:1px solid #ccc;padding:3px 4px;font-size:10pt;color:#111111">120</td> 
 
<td style="font-family:Helvetica Neue,Helvetica,Tahoma,Arial,sans-serif;border-left:1px solid #ccc;border-bottom:1px solid #ccc;padding:3px 4px;font-size:10pt;color:#111111">Structure</td> 
 
<td style="font-family:Helvetica Neue,Helvetica,Tahoma,Arial,sans-serif;border-left:1px solid #ccc;border-bottom:1px solid #ccc;padding:3px 4px;font-size:10pt;color:#111111">00813-121-000-001</td> 
 
<td style="font-family:Helvetica Neue,Helvetica,Tahoma,Arial,sans-serif;border-left:1px solid #ccc;border-bottom:1px solid #ccc;padding:3px 4px;font-size:10pt;color:#111111">0</td> 
 
<td style="font-family:Helvetica Neue,Helvetica,Tahoma,Arial,sans-serif;border-left:1px solid #ccc;border-bottom:1px solid #ccc;padding:3px 4px;font-size:10pt;color:#111111">REAR FRAME</td> 
 
<td style="font-family:Helvetica Neue,Helvetica,Tahoma,Arial,sans-serif;border-left:1px solid #ccc;border-bottom:1px solid #ccc;padding:3px 4px;font-size:10pt;color:#111111">01282016</td> 
 
</tr> 
 
</tbody> 
 
</table> 
 
</td> 
 
</tr> 
 
</table> 
 
</div> 
 
</div> 
 
<br> 
 
If you have trouble using the link above, copy and paste the following Web address into the address bar of your browser: 
 
<br> <a href="somewhere.net" target="_blank">somewhere.net</a> 
 
<br> <br> 
 
This is an automated email from an online application. If you feel that you received this email in error, please contact the application's manager, 
 
<a href="mailto:[email protected]" target="_blank">[email protected]</a> 
 
</td></tr></table> 
 
</div> 
 
</font></div></table></table></div></div></body></html>

ответ

1

Body свойство MailItem, что вы получили только для чтения. Вероятно, поэтому вы получаете сообщение об ошибке. Вам нужно переслать сообщение, получить перенаправленное сообщение, а затем обработать его Body.

Если вы получили письмо, что имел кучу вещей в нем, включая одну таблицу, и вы хотели передать только таблицу, вы можете использовать код, как этот

Public Sub ForwardTableOnly() 

    Dim olMail As MailItem 
    Dim lTblStart As Long, lTblEnd As Long 

    Set olMail = ActiveInspector.currentItem.Forward 

    lTblStart = InStr(1, olMail.HTMLBody, "<table") 
    lTblEnd = InStr(lTblStart, olMail.HTMLBody, "</table") 

    olMail.HTMLBody = Mid$(olMail.HTMLBody, lTblStart, lTblEnd - lTblStart + 1) 
    olMail.Display 

End Sub 

Он находит, где таблица в HTMLBody собственность и избавляется от всего остального. Это работает, но это сложнее. Если вы хотите сохранить таблицу плюс некоторые другие вещи, у вас будет более сложная манипуляция строк. И если форматирование важно для вас, у вас возникнет другая проблема. Вполне вероятно, что таблица отформатирована со стилями, которые определены далее в HTMLBody вместе с кучей других стилей. Это даже более строгие манипуляции. Но манипуляции с строкой достаточно легки, если не утомительны и скучны.

Соответствующие точки: вызов метода Forward и присвоение получаемого объекта MailItem переменной объекта. Затем установите свойство объекта HTMLBody на то, что вы хотите. В этом примере я использую свойство .Display, чтобы показать сообщение. Вы, скорее всего, захотите использовать .To и .Send, а не .Display.

+0

Ничего себе, это сработало так хорошо! Только одна проблема: HTML, вероятно, имеет собственное определение таблицы (как вы упомянули), поскольку этот макрос только тянет заголовок. Если бы он мог вытащить весь стол, он работал бы отлично! – KenFabIT

+0

Извините за поздний ответ !!! Кроме того, это так близко! Но я более подробно рассмотрел источник кода таблицы. По-видимому, это 2 таблицы. «Заголовок» - фактически таблица сверху. Затем есть вторая таблица, в которой есть информация, которую меня больше всего интересует пересылка. Этот макрос был настолько близок, но он не удалял текст перед столом и включал его до тех пор. Извините, что прищурился, но где я могу найти хорошие манипуляции с строками для макросов? Спасибо за всю твою помощь! – KenFabIT

+0

Если вы публикуете фактическую строку (или пример с закрытием), я могу дать вам больше подробностей. Для манипуляции с строкой выполните поиск 'Mid',' Instr' и 'Replace'. Они доставят вам большую часть пути. Там также есть библиотека регулярных выражений, если вы в этом разбираетесь. –