Как отменить VBA Pollowhyperlink?
-
26-10-2019 - |
Вопрос
У меня есть рабочий лист 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, вы, вероятно, можете получить недавно созданную почту, чтобы добавить вложения, получателей, сообщение ...