Funkcia Kontrola dokumentov našla v zošite skryté názvy. Tieto názvy môžu obsahovať skryté informácie o scenároch doplnku Riešiteľ. Ak napríklad spustíte scenár pomocou doplnku Riešiteľ, môže ako skryté názvy v zošite uložiť informácie o parametroch výpočtov a ďalšie citlivé údaje.
Dôležité: Spoločnosť Microsoft poskytuje príklady programovania len na ilustráciu bez záruky vyjadrenej alebo implicitnej. To zahŕňa, ale nie je obmedzená na implicitné záruky obchodovateľnosti alebo vhodnosti na konkrétny účel. V tomto článku sa predpokladá, že poznáte predvedený programovací jazyk a nástroje, ktoré sa používajú na vytváranie a ladenie postupov. Technickí inžinieri spoločnosti Microsoft môžu pomôcť vysvetliť funkčnosť konkrétneho postupu, ale tieto príklady neupravia tak, aby poskytovali ďalšie funkcie alebo vytvárali postupy na splnenie vašich konkrétnych požiadaviek.
Problém
Funkcia Kontrola dokumentov nemôže tieto skryté názvy odstrániť za vás.
Odporúčané riešenie
Ak chcete odstrániť skryté názvy, spustite nasledujúce makro. Makro zobrazí okno s hlásením s tromi položkami: (1), či je definovaný názov viditeľný alebo skrytý, (2) definovaný názov a (3) na čo tento názov odkazuje (odkaz na bunku zošita). Môžete vybrať možnosť Áno alebo Nie , ak chcete odstrániť alebo zachovať každý definovaný názov.
Poznámka: Ak skryté názvy odstránite pomocou tohto makra, doplnky (napríklad Riešiteľ) alebo makrá nemusia fungovať podľa očakávania a môžu stratiť skryté údaje, ktoré sú k nim priradené. Toto makro ovplyvňuje aj všetky definované názvy, ktoré sú skryté, nielen názvy pridané doplnkom Riešiteľ.
Upozornenie: Ak názvy hárkov obsahujú medzery, pri pokuse o odstránenie definovaného názvu sa môže zobraziť chyba.
Odstrániť skryté názvy
' 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