Odnaleziono ukryte nazwy

Dotyczy
Excel dla Microsoft 365 Excel 2024 Excel 2021 Excel 2019 Excel 2016

Inspektor dokumentów znalazł ukryte nazwy w skoroszycie. Te nazwy mogą zawierać ukryte informacje o scenariuszach dodatku Solver. Jeśli na przykład używasz dodatku Solver do uruchamiania scenariusza, może on przechowywać informacje o parametrach obliczeń i innych danych poufnych jako ukryte nazwy w skoroszycie.

Ważne

Firma Microsoft udostępnia przykłady programowania wyłącznie w celach ilustracyjnych, bez gwarancji wyrażonej lub dorozumianej. To obejmuje między innymi dorozumiane gwarancje przydatności handlowej lub przydatności do określonego celu.

W tym artykule założono, że znasz język programowania, który jest prezentowany, oraz narzędzia służące do tworzenia i debugowania procedur. Inżynierowie pomocy technicznej firmy Microsoft mogą pomóc w objaśnieniu funkcjonalności określonej procedury, ale nie zmodyfikują tych przykładów w celu zapewnienia dodatkowych funkcji ani skonstruowania procedur spełniających określone wymagania.

Problem

Inspektor dokumentów nie może usunąć tych ukrytych nazw.

Uruchom następujące makro, aby usunąć ukryte nazwy. Makro wyświetla okno komunikatu z trzema elementami: (1) czy zdefiniowana nazwa jest widoczna, czy ukryta, (2) zdefiniowana nazwa i (3) do czego odwołuje się ta nazwa (odwołanie do komórki skoroszytu). Możesz wybrać pozycję Tak lub Nie , aby usunąć lub zachować każdą zdefiniowaną nazwę.

Uwaga

Jeśli za pomocą tego makra usuniesz ukryte nazwy, dodatki (takie jak Solver) lub makra mogą nie działać zgodnie z oczekiwaniami i mogą utracić ukryte dane z nimi skojarzone. To makro wpływa również na każdą zdefiniowaną nazwę, która jest ukryta, a nie tylko te, które zostały dodane przez dodatek Solver.

Przestroga

Jeśli nazwy arkuszy zawierają spacje, podczas próby usunięcia zdefiniowanej nazwy może zostać wyświetlony komunikat o błędzie.

Usuwanie ukrytych nazw


' 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