Вопрос

У меня есть рабочий лист Excel с некоторыми гиперссылками. Некоторые из них являются адресами электронной почты.
Когда пользователь нажимает гиперссылку, я определяю, является ли это электронной почтой, используя Worksheet_FollowHyperlink(ByVal Target As Hyperlink) а также Target.Address like "mailto:*"

Я хочу сейчас Отменить поведение гиперссылки по умолчанию и сам откройте почтовый клиент, программно. Таким образом, я могу предоставить сообщение по умолчанию и добавить вложения.

Я пытался использовать Cancel = True Но это не работает. Я предпочитаю не связываться с пользовательскими гиперссылками, потому что Excel генерирует ссылки на электронную почту автоматически.

Это вообще возможно?
Открытие гиперссылки, кажется, происходит в другой ветке.

Это было полезно?

Решение

Ты не может предотвратить щелчок от следующей гиперссылки. Вы можете проверить самостоятельно, установив точку останова в Worksheet_FollowHyperlink подставка Excel перейдите по ссылке до Выполнение кода.

я Не вижу никакой процедуры событий Это поможет мешать и предотвратить поведение.

Еще один совет, который я мог бы дать, - Предотвратить Excel создать гиперссылки или сделать это VBA с Worksheet_Change мероприятие.
Далее вы можете перехватить Peuso-щелчок с Worksheet_SelectionChange и проверьте, содержит ли ячейка почтовый адрес.

И последнее, но не менее важное: если вы знаете, что Клиент электронной почты-Outlook, вы, вероятно, можете получить недавно созданную почту, чтобы добавить вложения, получателей, сообщение ...

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top