Notice: This website is an unofficial Microsoft Knowledge Base (hereinafter KB) archive and is intended to provide a reliable access to deleted content from Microsoft KB. All KB articles are owned by Microsoft Corporation. Read full disclaimer for more details.

Macro to Remove Hidden Names in Active Workbook


View products that this article applies to.

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.

↑ Back to the top


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.

↑ Back to the top


References

For additional information, click the following article number to view the article in the Microsoft Knowledge Base:
188446 FIX: AFC Deadlock May Occur When Setting UIFrame's Cursor

↑ Back to the top


Keywords: KB119826, kbprogramming, kbhowto, kbdtacode

↑ Back to the top

Article Info
Article ID : 119826
Revision : 6
Created on : 1/19/2007
Published on : 1/19/2007
Exists online : False
Views : 673