Kontrola metadat našla v sešitu skryté názvy. Tyto názvy můžou obsahovat skryté informace o scénářích Řešitele. Pokud například použijete doplněk Řešitel ke spuštění scénáře, může se v sešitu ukládat informace o parametrech výpočtu a jiných citlivých dat.
Důležité informace: Společnost Microsoft nabízí příklady programování pouze pro ilustraci bez záruky výslovně uvedené nebo implicitně předpokládaných. To zahrnuje, ale není omezeno na implicitně odvozené záruky obchodovatelnosti nebo vhodnosti pro určitý účel. V tomto článku se předpokládá, že jste obeznámeni s programovacím jazykem, který se vám seznámí, a s nástroji, které se používají k vytváření a ladění procedur. Pracovníci podpory Microsoftu můžou vysvětlit funkce určitého postupu, ale nebudou tyto příklady poskytovat, aby poskytovaly vaše konkrétní požadavky.
Problém
Funkce Kontrola metadat nemůže pro vás tyto skryté názvy odebrat.
Doporučené řešení
Pomocí následujícího makra odeberte skrytá jména. Makro zobrazí okno zprávy se seznamem tří položek: (1), jestli je definovaný název viditelný nebo skrytý, (2) definovaný název a (3) jaký název odkazuje (na odkaz na buňku sešitu). Chcete-li odstranit nebo zachovat jednotlivé definované názvy, můžete zvolit Ano nebo ne .
Poznámka: Pokud pomocí tohoto makra odeberete skrytá jména, doplňky (třeba Řešitel) nebo makra nefungují očekávaným způsobem a může dojít ke ztrátě skrytých dat spojených s nimi. Toto makro také ovlivňuje libovolný definovaný název, který je skrytý, nejen ty, které byly přidány řešitelem.
Upozornění: Pokud názvy listů obsahují mezery, může se při pokusu o odstranění definovaného názvu zobrazit chybová zpráva.
Odebrání skrytých názvů
' 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
Poznámka: Tato stránka byla přeložena automaticky a může obsahovat gramatické chyby nebo nepřesnosti. Naším cílem je to, aby pro vás byl její obsah užitečný. Mohli byste nám prosím dát vědět, jestli vám informace pomohly? Pokud chcete, můžete se podívat na anglickou verzi článku.