VBA to open Excel hyperlink does not work when hyperlink generated with a formula

23,843

I'm wondering if anyone has had a similar problem, and why the formula generated hyperlinks are not working for me.

Alas, this seems to be painful truth: Excel does not add to Hyperlinks collection formula-generated links - below is the screen from the debugger which is pointed to =HYPERLINK("http://www.google.com/";"Google"):

Cell Hyperlinks collection

I'm not sure whether this is a deliberate implementation or a bug, but yes, formula-generated links may NOT be opened using Hyperlinks().Follow method.

However, if you're going to use keyboard shortcut for links opening, just use the following code - it will automatically convert to clickable link selected cell text and open it:

Sub Open_Hyperlink()
    Selection.Hyperlinks.Add Anchor:=Selection, Address:=Selection.Formula
    Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
End Sub

Just assign any shortcut and you're ready to go) Here is the sample: https://www.dropbox.com/s/d4cie7lun22quma/FollowLinks.xlsm

Hope that's somehow helpful. Good luck!

Share:
23,843
Steve
Author by

Steve

Data/Dev

Updated on July 19, 2022

Comments

  • Steve
    Steve almost 2 years

    There seems to be a bug with Excel hyperlinks which are generated with a formula. I'm using Excel 2010. I have a spreadsheet with cells containing URLs, and my goal is to do the following two things:

    1. Turn these cells into hyperlinks.
    2. Create a keyboard shortcut to open these hyperlinks so I don't have to use the mouse.

    To do #1, initially I just used the function =HYPERLINK(). So, my URLs are in column A, and I used this formula to make hyperlinks in column B.

    To do #2, I created the following macro which should open the hyperlink with the keyboard shortcut Ctrl+H:

    Sub Open_Hyperlink()
    '
    ' Open_Hyperlink Macro
    '
    ' Keyboard Shortcut: Ctrl+h
    '
        Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
    End Sub
    

    The problem is that this macro only seems to work on hyperlinks which are not created using a formula. For example, if I just type into a cell http://www.google.com, Excel will automatically make this a hyperlink and the keyboard shortcut macro works, where it doesn't with formula generated hyperlinks.

    I've also noticed that when I right click on formula generated hyperlinks, there is no option in the drop-down menu to open the hyperlink, yet there is that option when right clicking on hyperlinks not generated by a formula.

    I've found the following workaround. Rather than generate hyperlinks using a formula, I used a macro which I found here.

    Sub HyperAdd()
    
    'Converts each text hyperlink selected into a working hyperlink
    
    For Each xCell In Selection
        ActiveSheet.Hyperlinks.Add Anchor:=xCell, Address:=xCell.Formula
    Next xCell
    
    End Sub
    

    I'm able to use the keyboard shortcut to open the hyperlinks generated with this macro. I'm wondering if anyone has or had a similar problem, and why the formula generated hyperlinks are not working for me. I would prefer to use formulas to make hyperlinks in the future, since it is simpler, so if anyone knows of a way to avoid using a macro to make hyperlinks, I'd really appreciate it.