如何取消vba followhyperlink?

neX*_*Xus 4 email excel outlook vba hyperlink

我有一个带有一些超链接的 Excel 工作表。其中一些是电子邮件地址。当用户单击超链接时,我使用和
来确定它是否是电子邮件Worksheet_FollowHyperlink(ByVal Target As Hyperlink)Target.Address like "mailto:*"

我现在想要的是取消默认的超链接行为并以编程方式自己打开电子邮件客户端。这样,我可以提供默认消息并添加附件。

我尝试使用Cancel = True但它不起作用。我不想弄乱自定义超链接,因为 Excel 会自动生成电子邮件链接。

有可能吗?
打开超链接似乎发生在另一个线程上。

JMa*_*Max 5

无法阻止点击超链接。您可以通过在子程序中设置断点来自行测试Worksheet_FollowHyperlink。Excel 在执行代码之前点击链接。

看不到任何有助于干扰和防止该行为的事件过程。

我可以给出的另一个提示是防止 Excel 创建超链接或通过 vba 事件来创建超链接Worksheet_Change
接下来,您可以使用 a 拦截一次点击Worksheet_SelectionChange,并检查单元格是否包含邮件地址。

最后但并非最不重要的一点是,如果您确实知道电子邮件客户端是 Outlook,您可能可以获取新创建的邮件来添加附件、收件人、消息...