Как я могу обратиться к диапазону в автоформатном ответном электронном письме с использованием VBA Excel? - PullRequest
0 голосов
/ 04 апреля 2019

У меня есть код ниже. Поскольку я использую .HTMLBody, мне нужно использовать теги HTML в VBA. Получатель электронного письма увидит кликабельное значение (гиперссылка через «AHREF» в коде) в теле письма. После щелчка открывается новое составленное электронное письмо, в котором есть несколько предварительно заполненных текстов в полях «Кому», «Тема» и «Текст сообщения».

В поле «Тело» я хочу сослаться на значение после «VOLUME:», которое помещается в диапазон («A6») на моем исходном листе Excel. Каждый раз, когда я изменяю значение в диапазоне («A6»), электронное письмо будет отправлено снова. Получатель снова щелкнет по гиперссылке и должен увидеть измененное значение по сравнению с предыдущим письмом. Это возможно?

  Sub Test()
 Dim oApp As Object
 Dim oEmail As Object


Dim Header As String
Dim Alpha As String

Dim olkPA As Outlook.PropertyAccessor
Const PR_ATTACH_CONTENT_ID = "http://schemas.microsoft.com/mapi/proptag/0x3712001F"

Header = "<html>" & "<table cellpadding= 5>" & "<tr bgcolor=""#000080"">" 
& "<font color =""white"";font face =Calibri><b>" & "<td width = 250>" & 
Range("A5") & "</td>" & _
"<td align=""center"";td width= 60>" & Range("E5") & "</td>" & "</font> 
</b>" & "</tr>" & "</html>"

Alpha = "<tr bgcolor=""#F0F0F0"">" & "<font face =Calibri>" & "<td>" & 
Range("A6") & "</td>" & "<td align=""center"">" & "<A HREF='mailto: 
xxx@xxx.com&subject=***ENQUIRY***&Body=INSTRUCTION: EXTEND %0D%0DVOLUME: 
1000  %0D%0DCODE: 12345 '>" & _
     "<font color =""blue"">" & Range("E6") & "</td>" & "</A>" & "</font>" 
& "</tr>" & "</html>"

Set oApp = CreateObject("Outlook.Application")
Set oEmail = oApp.CreateItem(0)
Set oApp = CreateObject("Outlook.Application")
Set oEmail = oApp.CreateItem(olMailItem)

With oEmail
   .To = ""
   .CC = ""
   .BCC = "xxx@xxx.com"
   .Subject = "Test"
   .HTMLBody = Header & Alpha
   .Display
  End With

     Set oEmail = Nothing
   Set oApp = Nothing
   Set colAttach = Nothing
   Set oAttach = Nothing

End Sub

1 Ответ

0 голосов
/ 09 апреля 2019

Предполагая, что вы хотите получить значение от A6 вместо 1000, которое есть в данный момент, вы просто должны иметь возможность создать строку гиперссылки со ссылкой на Range («A6»), так же, как в других частях общая строка html:

Alpha = "<tr bgcolor=""#F0F0F0"">" & "<font face =Calibri>" & "<td>" & Range("A6") & "</td>" & "<td align=""center"">" & _
"<A HREF='mailto: xxx@xxx.com&subject=***ENQUIRY***&Body=INSTRUCTION: EXTEND %0D%0DVOLUME: " & Range("A6") & " %0D%0DCODE: 12345 '>" & _
"<font color =""blue"">" & Range("E6") & "</td>" & "</A>" & "</font>" & "</tr>" & "</html>"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...