Extracting E-mail Addresses from Hyperlinks

Do you have a worksheet that has a bunch of e-mail addresses in it, as a series of hyperlinks? If so, you may be interested in a way to pull out those addresses and put them into cells as plain text. There are a few ways you can perform this task.

The first method is to remember that the hyperlinks for e-mail addresses all start with the text “mailto” followed by a colon. Thus, you can use a formula that will strip out the first part of the hyperlink. For instance, if the e-mail hyperlink is in cell A1, you can use this formula:

=RIGHT(A1,LEN(A1)-7)

This checks the length of the cell contents, and then extracts all of it except the first seven characters, which is the “mailto:” portion. You could also use a formula that relies on the SUBSTITUTE function:

=SUBSTITUTE(A1,"mailto:","")

If you prefer, you can use a macro to do the conversion from hyperlink to text-only e-mail address. The following single-line macro is a user-defined function that returns the converted hyperlink:

Function ExtractEmailAddress(rCell As Range)
    ExtractEmailAddress = _
      Mid(rCell.Hyperlinks(1).Address, 8)
End Function

In order to use the macro, all you need to do is use the function in some cell of your worksheet, in this manner:

=ExtractEmailAddress(A1)