Kontrola dokumenata pronašla je skrivena imena u radnoj knjizi. Ti nazivi mogu pohraniti skrivene informacije o scenarijima alata za rješavanje. Kada, primjerice, koristite dodatak Rješavač za pokretanje scenarija, on može pohraniti informacije o parametrima izračuna i drugim osjetljivim podacima kao skrivene nazive u radnoj knjizi.
Važno: Microsoft nudi primjere programiranja samo za ilustraciju, bez jamstva izraženog ili impliciranog. To uključuje, ali nije ograničeno na, implicirana jamstva prikladnosti ili prikladnosti za određenu svrhu. U ovom se članku pretpostavlja da ste upoznati s programskim jezikom koji se prikazuje i alatima koji se koriste za stvaranje i ispravljanje pogrešaka. Inženjeri Microsoftove podrške mogu objasniti funkcionalnost određenog postupka, ali neće izmijeniti te primjere da bi pružili dodatne funkcije ili konstruirali postupke kako bi ispunili vaše specifične zahtjeve.
Problem
Kontrola dokumenata ne može ukloniti skrivena imena umjesto vas.
Preporučeno rješenje
Pokrenite sljedeću makronaredbu da biste uklonili skrivene nazive. Makronaredba prikazuje okvir poruke u kojem su navedene tri stavke: (1) je li definirani naziv vidljiv ili skriven, (2) definirani naziv i (3) na što taj naziv upućuje (referenca ćelije radne knjige). Možete odabrati Da iliNe da biste izbrisali ili zadržali svaki definirani naziv.
Napomena: Ako koristite ovu makronaredbu za uklanjanje skrivenih naziva, dodaci (kao što je alat za rješavanje) ili makronaredbe možda neće funkcionirati na očekivani način i mogu izgubiti skrivene podatke povezane s njima. Ova makronaredba utječe i na sve definirane nazive koji su skriveni, ne samo na one koje je dodao alat za rješavanje.
Oprez: Ako nazivi listova sadrže razmake, možda ćete primiti pogrešku kada pokušate izbrisati definirani naziv.
Ukloni skrivena imena
' 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