Как отменить VBA по гиперссылке? - PullRequest
4 голосов
/ 26 июля 2011

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

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

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

Возможно ли это вообще?
Открытие гиперссылки происходит в другом потоке.

1 Ответ

4 голосов
/ 26 июля 2011

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

I не может увидеть ни одной процедуры , которая помогла бы помешать и предотвратить поведение.

Другой совет, который я мог бы дать, - это запретить Excel создавать гиперссылки или сделать это с помощью vba с событием Worksheet_Change.
Далее, вы можете перехватить peuso-click с помощью Worksheet_SelectionChange и проверитьесли ячейка содержит почтовый адрес.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...