Finding Automatic Links


Posted by Don Grubb on May 01, 2001 5:28 AM

When I open a workbook it says it has aoutomatic links to
another workbook. But, I think I have broken all the links
and cant find anymore. How else can I find them.



Posted by Dave Hawley on May 01, 2001 6:13 AM

Hi Don, here some more info on Phantom links:

1. Go to Insert>Name>Define and make sure you do not have any named ranges refering to an outside Workbook.

2. Go to Edit>Links and try to use the "Change Source" button to refer your link back to the your open workbook. In other words try and change the link so it refers to itself.

3. Open the a new workbook and create a link to it and Save. Now go to Edit>Links and use the "Change Source" to refer the link to the new Workbook. Save again and then delete the link you created.

.....If all the above fail, microsoft have seen this as a problem and have a free download here:

http://support.microsoft.com/support/kb/articles/Q188/4/49.ASP?LN=EN-US&SD=gn&FR=0&qry=delete%20links&rnk=1&src=DHCS_MSPSS_gn_SRCH&SPR=XLW97

In fact it is a handy add-in to have even if one of the above steps does work.


....and here is a macro I have written that will create a list of ALL external links in Formulas.


Sub ListExternalLinks()

'Written by OzGrid Business Applications
'www.ozgrid.com

'''''''''''''''''''''''''''''''''''''''''''''''''''''
'Creates a Worsheet called "Link List" and lists ALL _
external links in the Workbook.
'''''''''''''''''''''''''''''''''''''''''''''''''''''

Dim sht As Worksheet
Dim LinkCells As Range, Cell As Range
'Add a new sheet to list all external links.
On Error Resume Next
Sheets.Add().Name = "Link List"
Application.DisplayAlerts = False
'If name does NOT = "Link List" then it already exists
If ActiveSheet.Name <> "Link List" Then ActiveSheet.Delete
Application.DisplayAlerts = True
'Clear column A and format as text.
Sheets("Link List").Columns(1).Clear
Sheets("Link List").Columns(1).NumberFormat = "@"
'Loop through each worksheet
For Each sht In ThisWorkbook.Worksheets
'Set "LinkCells" to range that has formulas
Set LinkCells = Nothing
Set LinkCells = sht.Cells.SpecialCells(xlCellTypeFormulas)
If Not LinkCells Is Nothing Then
'Loop through each cell in "LinkCells"
For Each Cell In LinkCells
'See if if an external link or not.
If Cell.Formula Like "[*" Then
'It is, so copy the formula to column A of "Link List"
Sheets("Link List").Cells _
(65536, 1).End(xlUp).Offset(1, 0) = Cell.Formula
End If
Next Cell
End If 'Not LinkCells Is Nothing
Next sht
End Sub


Dave


OzGrid Business Applications