Dlaczego u licha Excel nie może obsłużyć 2 plików o tej samej nazwie? [Zamknięte]

90

To przeszkadza mi przez całe moje życie IT - pracowałem z 7 różnymi wersjami Excela przez ponad 20 lat, z dużymi zmianami w każdej wersji, zmuszając mnie do szukania, gdzie stare funkcje są ukryte w nowej wersji - ale jedna rzecz pozostaje solidna as a rock: niemożność otwarcia dwóch plików o tej samej nazwie.

Przepraszamy, program Excel nie może jednocześnie otworzyć dwóch skoroszytów o tej samej nazwie.

Więc naprawdę tęsknię za wglądem w to, dlaczego nadal tak jest w Excelu 2013, który nie był nawet konieczny do wdrożenia w Excelu 95? Czy istnieje jakiś powód techniczny lub projektowy w strukturach danych programu Excel lub wewnętrznych procesach przetwarzania, że ​​nie może on obsłużyć dwóch obiektów File z różnymi ścieżkami, ale o tej samej nazwie pliku? Nie chcę, żeby Microsoft tu walił, chcę tylko zrozumieć, dlaczego tak się dzieje.

Alexander Rühl
źródło
3
Zagłosowano na migrację do Super User. Nie jest w żaden sposób związany z programowaniem.
brettdj
1
@brettdj: Sam myślałem o tym samym, ale ponieważ nie jest to kwestia użytkowania aplikacji, ale techniczna przyczyna tego, która z kolei odnosi się do implementacji, powiedziałbym, że również tutaj pasuje.
Alexander Rühl,
6
Żadne inne oprogramowanie, którego używam, nie ma tego problemu. „Niestety, Mozilla Firefox nie może jednocześnie otworzyć dwóch plików o nazwie index.html”.
Colonel Panic
@ColonelPanic Jak rozwiązałbyś problem, z powodu którego Microsoft nałożył to ograniczenie?
GSerg

Odpowiedzi:

76

Microsoft twierdzi , że jest to spowodowane niejednoznacznością obliczeń z połączonymi komórkami.

Jeśli masz komórkę = '[Book1.xlsx] Sheet1'! $ G $ 33 i masz otwarte dwie książki o nazwie 'Book1', nie ma sposobu, aby stwierdzić, którą z nich masz na myśli.

Ten sposób odwoływania się do powiązanych skoroszytów według nazwy w komórkach utrzymuje się we wszystkich wersjach i bardzo wątpię, że się zmieni.

Baldrick
źródło
41
Pomyślmy teraz. Który procent użytkowników, którzy napotkali to frustrujące ograniczenie otwierania dwóch plików o tej samej nazwie, faktycznie miał takie łącze w jednym z dokumentów? Domyślam się, że 0,001%. Tak więc z powodu 0,001% użytkowników 99,9999% powinno znaleźć obejście, zmienić nazwy plików itp. Czy to nie głupie? Dlaczego po prostu nie pozwalać na otwieranie tych plików i podawać błąd TYLKO wtedy, gdy takie odniesienie faktycznie istnieje (lub po prostu nie oblicza takich komórek i wyświetla błąd, gdy użytkownik je kliknie).
Mike Keskinov
10

TAK, MOŻESZ!!! (Ale myślę, że to błąd programu Excel)


Spróbuj tego:

  1. Kliknij prawym przyciskiem myszy na pulpicie i wybierz „Nowy” => „Arkusz programu Microsoft Excel”.
  2. Zmień nazwę pliku na „Test [1] .xlsx” (nazwa jest ważna!)
  3. Teraz utwórz folder now na pulpicie i wklej do niego kopię pliku „Test [1] .xlsx”
  4. Otwórz oba „Test [1] .xlsx”, klikając dwukrotnie: Et voilà!

Teraz dwa (o tej samej nazwie) skoroszyty są otwarte w programie Excel. Ale jeśli zajrzysz tam „Workbook.Name” -Properties, stanie się jeszcze bardziej dziwne, ponieważ wewnętrznie oba mają zmienioną nazwę na „Test (1) .xlsx”.

Dzieje się tak, ponieważ program Excel potrzebuje wewnętrznie znaków specjalnych „[]” dla swoich formuł.

Więc (normalnie) nie są dozwolone dla nazwy skoroszytu, ale skoroszyt o nazwie „Test [1] .xlsx” zewnętrznie może zostać otwarty, co jest dla mnie błędem !

Czemu? Ponieważ jako programista naprawdę wpadasz w kłopoty, jeśli chcesz rozwiązać oba te skoroszyty za pomocą "Application.Workbooks [nazwa]", co nie zawodzi, ale zawsze dostarcza pierwszy znaleziony pod tą nazwą!

Jörg

jreichert
źródło
interesująca odpowiedź @jreichert, czy możesz wyjaśnić element „Workbook.Name” -Properties? Powinienem uruchomić to w wierszu poleceń czy coś?
Ashrith
1
@Ashrith: Przejdź do bezpośredniego okna programu Excel VBA (ALT + F11, CTRL + G). Sposób użycia: Zobacz excelcampus.com/vba/vba-immediate-window-excel Następnie wpisz :? Application.Workbooks (1) .Nazwa i naciśnij
klawisz
9

Dla wszystkich, którzy tu trafiają, ponieważ chcieliby otworzyć jednocześnie dwa pliki Excela o tej samej nazwie:

Chociaż sam Excel nie pozwala na to z powodu (z pewnością wątpliwych) okoliczności podanych przez Baldricka w jego odpowiedzi , istnieją przynajmniej obejścia, które pozwalają na otwieranie wielu plików xls / xlsx o tej samej nazwie w tym samym czasie w oddzielnych instancjach Excela / procesy.

Obejścia są wyjaśnione w tym wątku na forach How-To Geek .

Istnieje nawet coś w rodzaju „wbudowanej” poprawki z pomocą tego ustawienia Ignore other applications that use Dynamic Data Exchange (DDE), która działa dla mnie, ale prowadzi do błędów podczas zamykania programu Excel, a następnie próby ponownego otwarcia pliku przez dwukrotne kliknięcie.

Musiałem przejść do poprawki rejestru, która działa dobrze. NALEŻY PAMIĘTAĆ, że to obejście, po zastosowaniu, zapobiegnie tworzeniu się odnośników między WSZYSTKIMI otwartymi tabelami Excela (również tymi o różnych nazwach), ponieważ oddzielne instancje Excela nie są sobie nawzajem świadome (przynajmniej według przeprowadzonych przeze mnie testów).

Zamiast tego możesz wybrać poprawkę, która dodaje nowy element menu kontekstowego Open Separatedo Eksploratora i używać go tylko wtedy, gdy w rzeczywistości chcesz otworzyć dwa pliki o tej samej nazwie w tym samym czasie.

Daniel K.
źródło
Bardzo dobry link, dzięki - w rzeczywistości próbowałem już tego z innego źródła, głównie otwierając go w oddzielnym wystąpieniu, ale wycofałem się z niego ponownie, ale myślę, że wybrałbym element menu kontekstowego, aby otworzyć go osobno w razie potrzeby.
Alexander Rühl