Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 如何取消vba followhyperlink?_Excel_Vba_Email_Outlook_Hyperlink - Fatal编程技术网

Excel 如何取消vba followhyperlink?

Excel 如何取消vba followhyperlink?,excel,vba,email,outlook,hyperlink,Excel,Vba,Email,Outlook,Hyperlink,我有一个excel工作表和一些超链接。其中一些是电子邮件地址。 当用户单击超链接时,我会使用工作表\u FollowHyperlink(ByVal Target作为超链接)和Target.Address,如“mailto:*” 我现在想要的是取消默认的超链接行为并自己以编程方式打开电子邮件客户端。这样,我就可以提供默认消息并添加附件 我试过使用Cancel=True,但不起作用。 我不想弄乱自定义超链接,因为excel会自动生成指向电子邮件的链接 甚至可能吗? 打开超链接似乎发生在另一个线程上。

我有一个excel工作表和一些超链接。其中一些是电子邮件地址。
当用户单击超链接时,我会使用
工作表\u FollowHyperlink(ByVal Target作为超链接)
Target.Address,如“mailto:*”

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

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

甚至可能吗?

打开超链接似乎发生在另一个线程上。

您无法阻止单击超链接。您可以通过在
工作表\u FollowHyperlink
sub中设置断点进行测试。Excel在执行代码之前,请跟随链接

我看不到任何有助于干扰和阻止行为的事件过程

我可以给出的另一个技巧是通过vba使用
工作表\u Change
事件进行更改。
接下来,您可以使用
工作表\u SelectionChange
截取peuso点击,并检查单元格是否包含邮件地址


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

这似乎是一个具有挑战性的问题。我的猜测是,您必须将自己的自定义子例程与FollowHyperlink事件连接起来,但我还没有找到一个资源来描述这一点。我试图改变我能想到的一切,但点击仍然会显示链接的目的地。作为一种解决方法,您可能会将文档中的所有超链接都转换为纯文本,然后找到您要查找的超链接。如果没有其他方法有效,则必须尝试这样做。这就是我所担心的。但我确实知道客户是outlook。你知道我如何获得新创建的电子邮件的引用吗?也许你可以查看草稿文件夹。要获得更好的答案,您可以提出新问题并将其链接到此处,以便用户可以查看标记:vba或标记:outlook vba:)