2012-09-14 20:31:52 +0000 2012-09-14 20:31:52 +0000
7
7

Dlaczego Excel daje mi teraz ostrzeżenie o już istniejącym zakresie nazw na Kopiuj arkusz?

Od kilku dni pracuję nad arkuszem kalkulacyjnym programu Microsoft Excel 2007. Pracuję z arkusza podobnego do szablonu głównego i wielokrotnie kopiuję go do nowego arkusza. Do dzisiaj odbywało się to bez problemów. Jednak w połowie dzisiejszego dnia nagle się to zmieniło i nie wiem dlaczego. Teraz za każdym razem, gdy próbuję skopiować arkusz, dostaję około dziesięciu okien dialogowych, każde z innym obiektem zakresu nazw (pokazanym poniżej jako “XXXX”) i klikam tak dla każdego z nich:

Formuła lub arkusz, który chcesz przenieść lub skopiować, zawiera nazwę ‘XXXX’, która już istnieje na arkuszu docelowym. Czy chcesz użyć tej wersji nazwy?

  • Aby użyć nazwy zdefiniowanej w arkuszu docelowym, kliknij przycisk Tak.
  • Aby zmienić nazwę zakresu, o którym mowa w formule lub arkuszu, kliknij przycisk Nie i wprowadź nową nazwę w oknie dialogowym Konflikt nazw.

Obiekty zakresu nazw odnoszą się do komórek w arkuszu. Na przykład E6 jest nazywane zakresem nazw PRE w wielu arkuszach (i tak było przez cały czas), a niektóre formuły odwołują się do PRE zamiast $E$6. Jeden z powyższych “XXXX” to właśnie ten PRE. Te zakresy nazw powinny być rozwiązywane tylko w obrębie arkusza, w którym występują. Nie było to problemem wcześniej, mimo że ten sam zakres nazw istniał wcześniej na wielu arkuszach. Chcę zachować moje zakresy nazw.

Co mogło się zmienić w moim arkuszu kalkulacyjnym, aby spowodować tę zmianę w zachowaniu? Wróciłem do wcześniejszych arkuszy utworzonych w ten sposób i teraz one również dają ten komunikat podczas kopiowania. Próbowałem na innym komputerze i innym użytkowniku i wszędzie widać to samo zachowanie. Mogę tylko wnioskować, że coś w arkuszu się zmieniło. Co to może być i jak mogę przywrócić stare zachowanie, dzięki któremu mogę kopiować arkusze z zakresami nazw i nie otrzymuję żadnych ostrzeżeń?

Patrząc na zakres Name Manager widzę, że zakresy nazw, na które są uskarżane, pojawiają się dwukrotnie, raz jako zakres Template i ponownie jako zakres Workbook. Jeśli usunę zakres Template, ostrzeżenie zniknie przy kopiowaniu, ale dostanę masę błędów #REF. Jeśli usunę zakres Workbook ones, wszystko wydaje się w porządku, a ostrzeżenia na kopiowaniu również znikają, więc może to jest odpowiedź, ale jestem zdenerwowany tym, jaki wpływ będzie miało to usunięcie i zastanawiam się, jak te Workbook ones powstały w pierwszej kolejności.

Czy bezpiecznie będzie po prostu usunąć wpisy Workbook name manager scoped i w jaki sposób mogły one powstać bez mojej wiedzy na początku?

Odpowiedzi (6)

6
6
6
2012-09-14 20:51:03 +0000

Otwórz Menedżera nazw i znajdź nazwane elementy, na które narzekają i usuń wszystkie te z zakresem Workbook, a problem z kopiowaniem arkuszy zniknie, a formuły pozostaną nienaruszone.

5
5
5
2014-07-11 09:59:53 +0000
Sub TOOLS_DELETENAMEDRANGE()

  Dim nm As name
  On Error Resume Next

  For Each nm In ActiveWorkbook.Names
    If (MsgBox("Delete name- " & nm.name, vbYesNo) = vbYes) Then  
      nm.Delete
    End If
  Next

  On Error GoTo 0

End Sub
2
2
2
2012-09-14 20:52:04 +0000

Nie jest to błąd, lecz ostrzeżenie o istnieniu konfliktu i daje możliwość wyboru, co zrobić

Kiedy kopiujesz zakres, który zawiera odwołanie do zakresu o nazwie (zazwyczaj zakres arkusza), a ta sama nazwa istnieje w arkuszu docelowym, skąd Excel ma wiedzieć, której nazwy chcesz użyć w wyniku?

Jeśli chodzi o to, co się zmieniło, sugeruję, abyś przejrzał wszystkie nazwy w swoim skoroszycie, szczególnie dla zakresu.
Menedżer nazw - Ctrl-F3

1
1
1
2013-11-04 08:47:47 +0000

Nazwy te są najczęściej wynikiem pobrania danych za pośrednictwem interfejsu API innej firmy. Interfejsy API zazwyczaj używają tych nazw jako znaczników miejsca dla odwołań do komórek.

Po przetworzeniu danych nazwy te są najczęściej pozostawiane, ponieważ użytkownik nie czyści ukrytych (lub bardzo ukrytych) arkuszy. Trudność związana z tymi nazwami polega na tym, że nie pojawiają się one również w polu NAZWY i dlatego nie można ich usunąć za pomocą tej opcji.

Jednym ze sposobów, w jaki to robię, jest zaprogramowanie tego za pomocą skryptu VBA. Przykład poniżej

Sub do_loop_names()
Dim vJunkName As Name
Debug.Print ThisWorkbook.Names.Count

For Each vJunkName In ThisWorkbook.Names
    vJunkName.Delete
Next vJunkName
End Sub

Zwróć uwagę, że ten skrypt usunie WSZYSTKIE nazwy z skoroszytu, więc jeśli są jakieś zdefiniowane nazwy, które chciałbyś zachować, umieść wyjątki w kodzie.

Jeśli ktoś ma bardziej efektywne rozwiązanie, proszę dać mi znać.

0
0
0
2015-02-20 22:03:14 +0000

Miałem ten sam problem i wypróbowałem każde z podanych rozwiązań, z różnym powodzeniem:

1) Otworzyłem Menedżera Nazw i, oczywiście, było tam kilka Nazw, których nigdy nie utworzyłem; jednak NIE były to nazwy, o których mnie ostrzegano. I tak je usunąłem, aby pozbyć się bałaganu, ale to nie było rozwiązanie.

2) Wypróbowałem kod dostarczony przez Viquar (zacznij “Sub doloopsnames”). Myślę, że część kodu została pominięta, ponieważ nie widzę, jak to faktycznie coś robi i, na pewno, nic się nie stało.

3) Wypróbowałem kod dostarczony przez użytkownika345338 (zaczyna się od “Sub TOOLS\”) - PERFEKT. Przeszedł mnie przez wszystkie ukryte nazwy, które w jakiś sposób utknęły w skoroszycie i usunął je. Dziękuję bardzo, user345338 (kimkolwiek jesteś!).

BTW, do “codea” - kod użytkownika345338 nie jest “bezużyteczny”, ponieważ rozwiązał mój problem.

0
0
0
2013-07-01 18:49:58 +0000

Ten sam problem tutaj z 27 tajemniczymi nazwanymi zakresami. Użyłem Ctrl + F3 (jak zalecono w innej odpowiedzi), aby wyświetlić listę nazwanych zakresów (których nigdy nie ustawiłem!). Było ich wiele, ponieważ wielokrotnie kopiowałem kartę arkusza i po prostu klikałem “tak”, aby obejść komunikat. Podświetliłem i usunąłem wszystkie nazwane zakresy (jeden mały ekran na raz, nie mogłem wybrać Wszystkie). Następnym razem, gdy próbowałem skopiować arkusz, kopia powiodła się bez komunikatu ostrzegawczego.

Upewnij się, że skopiowałeś swój oryginalny plik przed wypróbowaniem tego.