Našli sa skryté mená

Vzťahuje sa na
Excel pre Microsoft 365 Excel 2024 Excel 2021 Excel 2019 Excel 2016

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 pre ilustráciu bez výslovnej alebo implicitnej záruky. To sa týka (okrem iného) aj implicitných záruk obchodovateľnosti alebo vhodnosti na konkrétny účel.

Článok predpokladá, že poznáte predvádzaný programovací jazyk a nástroje, ktoré sa používajú na vytváranie a ladenie procedúr. Pracovníci technickej podpory spoločnosti Microsoft vám môžu pomôcť vysvetliť funkčnosť konkrétneho postupu, tieto príklady však nebudú upravovať, aby poskytovali ďalšie funkcie alebo zostavili procedúry podľa vašich špecifických požiadaviek.

Problém

Funkcia Kontrola dokumentov nemôže tieto skryté názvy odstrániť za vás.

Skryté názvy odstránite pomocou nasledujúceho makra. Makro zobrazí okno s hlásením, ktoré obsahuje tri položky: (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 v zošite). Každý definovaný názov môžete odstrániť alebo zachovať môžete výberom možnosti Áno alebo Nie .

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ánenie skrytých názvov


' 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