Отправить Outlook письмо из Excel и добавить гиперссылку в электронной почте, которая идет на номер строки при открытии таблицы
У меня есть таблица Excel, которая отправляет электронное письмо с использованием vba:
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
strbody = "This is email text, click the link <a href='C:\test.xlsm & Range("F" & ActiveCell.Row).Address'></a>"
On Error Resume Next
With OutMail
.To = "####"
.CC = ""
.BCC = ""
.Subject = "Sales Tracker: A New Task has been added to the tracker"
.HTMLBody = strbody & strbody2 & strbody3 & strbody4
.Send 'displays outlook email
'Application.SendKeys "%s" 'presses send as a send key
End With
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
Письмо отправляется, когда пользователь нажимает на определенную ячейку в активной строке.
Я включил свою электронную таблицу Excel в электронное письмо с гиперссылкой, но теперь я хочу иметь возможность добавить что-то в гиперссылку, что позволит мне включить ссылку на ячейку в строке, по которой пользователь щелкает при отправке электронного письма.
Идея в том, что гиперссылка при открытии откроет электронную таблицу и приведет пользователя к строке, на которую ссылается ссылка, и выделит ее.
Пожалуйста, может кто-нибудь показать мне, как это сделать? заранее спасибо
2 ответа
Вы пропускаете ссылку на лист в своей ссылке (хотя я не уверен, что этого будет достаточно), поэтому попробуйте что-то вроде этого:
href='[C:\test.xlsm]" & ActiveSheet.Name & "!" & Range("F" & ActiveCell.Row).Address & "'></a>"
чтобы соответствовать этому формату:
href='[C:\test.xlsm]SheetName!A1'
И что еще более важно, вы забыли правильно закрыть кавычки, так что вот так:
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
strbody = "This is email text, click the link <a href='[C:\test.xlsm]" & _
ActiveSheet.Name & "!" & Range("F" & ActiveCell.Row).Address & "'></a>"
On Error Resume Next
With OutMail
.To = "####"
.CC = ""
.BCC = ""
.Subject = "Sales Tracker: A New Task has been added to the tracker"
.HTMLBody = strbody & strbody2 & strbody3 & strbody4
.Send 'displays outlook email
'Application.SendKeys "%s" 'presses send as a send key
End With
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
Я не уверен, возможно ли это сделать с помощью гиперссылки, скорее всего нет. Единственное, что мне приходит в голову, это добавить событие Worksheet_Activate() в таблицу, которую вы присоединяете, и там указать желаемый диапазон, но не с гиперссылкой.