Microsoft KB Archive/119826

= Macro to Remove Hidden Names in Active Workbook =

Article ID: 119826

Article Last Modified on 1/19/2007

-

APPLIES TO


 * Microsoft Office Excel 2003
 * Microsoft Excel 2002 Standard Edition
 * Microsoft Excel 2000 Standard Edition
 * Microsoft Excel 98 for Macintosh
 * Microsoft Excel 97 Standard Edition

-



This article was previously published under Q119826



SUMMARY
Because some macros and add-ins create hidden names on a sheet, links may exist even after you attempt to remove all known references (including objects and formulas) from a worksheet. In this situation, when you open a worksheet containing the hidden links, you may receive the following error message:

Update References to Unopened Documents

The macro in the "More Information" section of this article provides a macro to remove all the hidden names in a workbook.



MORE INFORMATION
Microsoft provides programming examples for illustration only, without warranty either expressed or implied. This includes, but is not limited to, the implied warranties of merchantability or fitness for a particular purpose. This article assumes that you are familiar with the programming language that is being demonstrated and with the tools that are used to create and to debug procedures. Microsoft support engineers can help explain the functionality of a particular procedure, but they will not modify these examples to provide added functionality or construct procedures to meet your specific requirements. The macro displays a message box that lists three items: (1) whether the defined name is visible or hidden, (2) the defined name, and (3) what that name refers to (the workbook cell reference). You may choose Yes or No to delete or to keep each defined name.

CAUTION: Removing names that contain links can eliminate errant links; however, doing so could affect the integrity of your data and return unexpected results. Microsoft recommends that you create a backup of your workbook before running this macro which may make changes to your data.

Visual Basic Code Example
' Module to remove all hidden names on active workbook Sub Remove_Hidden_Names

' Dimension variables. Dim xName As Variant Dim Result As Variant Dim Vis As Variant

' Loop once for each name in the workbook. For Each xName In ActiveWorkbook.Names

'If a name is not visible (it is hidden)... If xName.Visible = True Then Vis = "Visible" Else Vis = "Hidden" End If

' ...ask whether or not to delete the name. Result = MsgBox(prompt:="Delete " & Vis & " Name " & _              Chr(10) & xName.Name & "?" & Chr(10) & _               "Which refers to: " & Chr(10) & xName.RefersTo, _               Buttons:=vbYesNo)

' If the result is true, then delete the name. If Result = vbYes Then xName.Delete

' Loop to the next name. Next xName

End Sub Note If your sheet names contain spaces, you may receive an error when you attempt to delete the defined name.

