我在电子表格中有一份船只清单,其中一列将包含每艘船的电子邮件地址。但是,输入电子邮件地址会将其转换为超链接,而我希望将其全部存储为纯文本。有没有办法防止这种情况发生或者之后删除超链接?
我目前的尝试是这个小分子:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("VesselEmails")) Is Nothing Then Exit Sub
Application.EnableEvents = False
If Target.Hyperlinks.Count > 0 Then Target.Hyperlinks.Delete
Application.EnableEvents = True
End Sub
不幸的是,它没有完成这项工作。我有什么方法可以使它工作,或者我可以应用的格式掩码还是什么?
编辑:为了澄清,我不想完全关闭电子邮件地址autoformatting,就在那一栏中。
答案 0 :(得分:2)
您可以使用Columns(1).Hyperlinks.Delete
删除列中的超链接。在您的更改子计划中运行此行,并将Columns(1)
中的1更改为包含电子邮件数据的列号 - 您也可以将其更改为列字母,例如Columns("E")
。
希望这会有所帮助。
答案 1 :(得分:1)
您可以尝试将此作为替代方案 - 它在Excel 2010中适用于我:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 5 Then
Application.AutoFormatAsYouTypeReplaceHyperlinks = False
Else
Application.AutoFormatAsYouTypeReplaceHyperlinks = True
End If
End Sub
根据您对问题的编辑,这会使行为特定于列。显然,您可以扩展If Target.Column = 5
代码以包含更多列,具体取决于您的表单。
答案 2 :(得分:1)