避免在excel vba中触发mailto超链接
大家早上好。感谢您的关注,如果之前有人问过,请提前道歉 我有一个电子表格,里面有几个联系人和电子邮件。在工作中,我们定期向这些联系人发送电子邮件,通过一些特定的模板定制。我创建了一个代码,当您单击mailto:hyperlink时,会显示一个带有下拉菜单的小表单,以便我们可以选择要使用的模板;当单击命令按钮时,它会使用outlook编写一封电子邮件,用模板和联系人、公司名称、主题等填充电子邮件正文 所有这些都非常有效 然而,它不仅打开了userform;它还会打开一封新的空白电子邮件,就像没有代码一样 有没有办法防止这种情况发生?仅在单击电子邮件地址时执行我的代码避免在excel vba中触发mailto超链接,vba,email,excel,Vba,Email,Excel,大家早上好。感谢您的关注,如果之前有人问过,请提前道歉 我有一个电子表格,里面有几个联系人和电子邮件。在工作中,我们定期向这些联系人发送电子邮件,通过一些特定的模板定制。我创建了一个代码,当您单击mailto:hyperlink时,会显示一个带有下拉菜单的小表单,以便我们可以选择要使用的模板;当单击命令按钮时,它会使用outlook编写一封电子邮件,用模板和联系人、公司名称、主题等填充电子邮件正文 所有这些都非常有效 然而,它不仅打开了userform;它还会打开一封新的空白电子邮件,就像没有代
提前感谢不,您不能取消以下超链接。以前已经回答过了 备选方案 使用
工作表\u selection change(ByVal Target As Range)
事件捕获包含电子邮件的特定范围,并在此事件中启动表单。假设您的电子邮件超链接位于范围B2:B30
内。那就这样做吧
A)删除这些单元格中的所有超链接。看
B)(可选)如果要为单元格添加超链接外观,请将单元格的字体涂成蓝色,并在其下方加下划线
C)将此代码粘贴到工作表代码区域
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("B2:B30")) Is Nothing Then
MyForm.Show
End If
End Sub
加载工作表时,能否运行代码关闭所有超链接?类似于:ActiveSheet.Hyperlinks.Delete。或者超链接是否启动了加载自定义表单的代码?(不确定用于打开表单的OnClick事件。)是的,单击超链接将显示表单,其中有一个CommandButton;单击该按钮,它将运行一个宏来执行其余操作。下面是显示表单的代码:如果Target.Range.Address=ActiveCell.Address然后是UserForm1.Show Exit Sub End If End Sub极好的建议,@SiddharthRout。这非常有效。我检查了instr(target.text,“@”)0是否显示我的用户表单。
工作表\u FollowHyperlink(ByVal target As Hyperlink)
是否更适合此操作?这是我想到的第一个想法,但不幸的是,这行不通。在我的回答中,第一个链接也提到了这一点。幻觉-我确信我在工作表下面的超链接中做了一些类似的事情,但我今天似乎比正常人更容易产生幻觉。我今天比正常人更容易产生幻觉。
你并不孤单。把我算在内;)