Cheryl has a worksheet that contains many hyperlinks. The display text for each hyperlink is different than the target for the hyperlink. These hyperlinks are all in column A. Cheryl would like to leave the display text in column A, move the target URL into column B, and delete the hyperlink in column A. What she needs to end up with is the display text in column A, the URL in column B, and no active hyperlinks in the worksheet.
Processing and extracting information from hyperlinks in this manner requires the use of a macro. The following is an example of a flexible macro that examines whatever hyperlinks are in the selected range of cells. If a hyperlink is found, the URL for the hyperlink is entered to the right of the hyperlink and then the hyperlink itself is deleted. This leaves the display text in the cell where the hyperlink used to be.
Sub GetHLInfo() Dim rRng As Range Dim cell As Range Set rRng = ActiveSheet.Range(ActiveWindow.Selection.Address) For Each cell In rRng If cell.Hyperlinks.Count > 0 Then cell.Offset(0, 1) = cell.Hyperlinks(1).Address cell.Hyperlinks(1).Delete End If Next End Sub
ExcelTips is your source for cost-effective Microsoft Excel training. This tip (9898) applies to Microsoft Excel 2007, 2010, and 2013. You can find a version of this tip for the older menu interface of Excel here: Extracting Hyperlink Information.
Solve Real Business Problems Master business modeling and analysis techniques with Excel and transform data into bottom-line results. This hands-on, scenario-focused guide shows you how to use the latest Excel tools to integrate data from multiple tables. Check out Microsoft Excel 2013 Data Analysis and Business Modeling today!
Excel provides a good number of worksheet functions that can help you pick apart text strings in various ways. In this ...
Discover MoreBesides saving a worksheet as a complete Web page, you can also save smaller portions of your data to an existing Web ...
Discover MoreWhen you create a worksheet that is destined for viewing on the Web, you will want to specify the monitor resolution you ...
Discover MoreFREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."
2016-03-19 13:19:37
SandyLee Griswold
Thank you so much for this macro. You saved me HOURS of time this morning. You're my HERO!
2014-08-11 12:10:55
Bryan
The first working line of the macro is really clumsy... instead of
Set rRng = ActiveSheet.Range(ActiveWindow.Selection.Address)
Why not
Set rRng = Selection
Or better yet, just skip the extra object and use Selection directly within the loop. Usually I'm not a fan of the Select object, but in this case it's how you are choosing what cells to run the macro over so it's the most logical choice.
Got a version of Excel that uses the ribbon interface (Excel 2007 or later)? This site is for you! If you use an earlier version of Excel, visit our ExcelTips site focusing on the menu interface.
FREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."
Copyright © 2018 Sharon Parq Associates, Inc.
Comments