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
Note:
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.
Save Time and Supercharge Excel! Automate virtually any routine task and save yourself hours, days, maybe even weeks. Then, learn how to make Excel do things you thought were simply impossible! Mastering advanced Excel macros has never been easier. Check out Excel 2010 VBA and Macros today!
Wouldn't it be great if Excel could automatically e-mail you when a due date is reached? It can, if you are using Outlook ...
Discover MoreExcel allows you to open HTML pages within the program, which is great for some purposes. What if you want to open a ...
Discover MoreCreating a drop-down list with Excel's data validation feature can be a nice touch for a worksheet. What if you want the ...
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 © 2019 Sharon Parq Associates, Inc.
Comments