Отправить 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() в таблицу, которую вы присоединяете, и там указать желаемый диапазон, но не с гиперссылкой.

Другие вопросы по тегам