Почему, черт возьми, Excel не может обрабатывать 2 файла с одинаковыми именами? [закрыто]

90

Это беспокоит меня всю мою ИТ-жизнь - я работал с 7 различными версиями Excel более 20 лет, с большими изменениями в каждой версии, заставляя меня искать, где старые функции скрыты в новой версии, - но одно остается неизменным. как скала: невозможность открыть два файла с одинаковым именем.

К сожалению, Excel не может одновременно открывать две книги с одинаковыми именами.

Так что я действительно хочу понять, почему это все еще так в Excel 2013, которое даже не было необходимости реализовывать в Excel 95? Есть ли в структурах данных Excel или внутренних процессах какие-либо технические или конструктивные причины, по которым он не может обрабатывать два объекта File с разными путями, но с одинаковым именем файла? Я не хочу, чтобы здесь была критика Microsoft, я просто хочу понять причину этого.

Александр Рюль
источник
3
Проголосовали за переход на суперпользователя. Никакого отношения к программированию не имеет.
brettdj
1
@brettdj: Я сам думал о том же, но поскольку это не вопрос использования приложения, а вопрос о технической причине, которая, в свою очередь, относится к реализации, я бы сказал, что это тоже подходит здесь.
Александр Рюль
6
Никакое другое программное обеспечение, которое я использую, не имеет этой проблемы. «К сожалению, Mozilla Firefox не может открыть два файла с именем index.html одновременно».
Полковник Паник,
@ColonelPanic Как бы вы решили проблему, из-за которой Microsoft наложила это ограничение?
GSerg

Ответы:

76

Microsoft говорит здесь, что это связано с неоднозначностью вычислений со связанными ячейками.

Если у вас есть ячейка = '[Book1.xlsx] Sheet1'! $ G $ 33 и у вас есть две открытые книги с именем 'Book1', невозможно определить, какую из них вы имеете в виду.

Такой способ ссылки на связанные книги по имени в ячейках сохраняется во всех версиях, и я очень сомневаюсь, что он изменится.

Болдрик
источник
41
А теперь подумаем. Какой процент пользователей, столкнувшихся с раздражающим ограничением открытия двух файлов с одинаковыми именами, на самом деле имел такую ​​ссылку в одном из документов? Я предполагаю, что это 0,001%. Итак, из-за 0,001% пользователей 99,9999% должны найти обходной путь, переименовать файлы и т. Д. Разве это не глупо? Почему просто не разрешать открывать эти файлы и выдавать ошибку ТОЛЬКО, если такая ссылка действительно существует (или просто не вычислять такие ячейки и не выдает ошибку, когда пользователь нажимает на нее).
Майк Кескинов
10

ДА, ТЫ МОЖЕШЬ!!! (Но я думаю, что это ошибка Excel)


Попробуй это:

  1. На рабочем столе щелкните правой кнопкой мыши и выберите «Создать» => «Рабочий лист Microsoft Excel».
  2. Переименуйте файл в «Test [1] .xlsx» (имя важно!)
  3. Теперь создайте папку Now на рабочем столе и вставьте в нее копию файла "Test [1] .xlsx".
  4. Откройте оба файла "Test [1] .xlsx" двойным щелчком: Et voilà!

Теперь две книги (с одинаковыми именами) открыты в Excel. Но если вы посмотрите там «Workbook.Name» -Properties, это станет еще более странным, потому что внутри они оба переименованы в «Test (1) .xlsx».

Это потому, что Excel действительно нуждается в специальных символах «[]» внутри своих формул.

Таким образом, они (обычно) не разрешены для имени книги, но книга с именем "Test [1] .xlsx" извне может быть открыта в любом случае, что для меня является ошибкой !

Зачем? Потому что у вас, как у программиста, действительно возникнут проблемы, если вы захотите обратиться к обеим этим книгам с помощью «Application.Workbooks [имя]», который не дает сбоев, но всегда предоставляет первую, найденную с этим именем!

Йорг

Jreichert
источник
интересный ответ @jreichert, не могли бы вы объяснить "Workbook.Name" - часть свойств? Я должен запустить это в командной строке или что-то в этом роде?
Ашрит
1
@Ashrith: перейти к немедленному окну excel VBA (ALT + F11, CTRL + G). Использование: см. Excelcampus.com/vba/vba-immediate-window-excel Затем введите :? Application.Workbooks (1) .Name и нажмите return ...
jreichert
9

Для всех людей, которые оказались здесь, потому что они хотели бы одновременно открыть два файла Excel с одинаковым именем:

Несмотря на то, что сам Excel не позволяет делать это из-за (безусловно сомнительных) обстоятельств, указанных Болдриком в его ответе , существуют, по крайней мере, обходные пути, которые позволяют одновременно открывать несколько файлов xls / xlsx с одним и тем же именем в отдельных экземплярах Excel. / процессы.

Обходные пути описаны в этой ветке на форумах How-To Geek .

Есть даже своего рода «встроенное» исправление с помощью настройки Ignore other applications that use Dynamic Data Exchange (DDE), которое у меня работает, но приводит к ошибкам при закрытии Excel и последующей попытке открыть файл, дважды щелкнув по нему.

Мне пришлось пойти на исправление реестра, которое отлично работает. ОБРАТИТЕ ВНИМАНИЕ, ЧТО этот обходной путь после применения предотвратит перекрестные ссылки на ячейки между ВСЕМИ открытыми таблицами Excel (также с разными именами), поскольку отдельные экземпляры Excel не знают друг друга (по крайней мере, в соответствии с только что проведенными мною тестами).

Вместо этого вы можете выбрать исправление, которое добавляет новый пункт контекстного меню Open Separateв проводник, и использовать его только в том случае, если вы действительно хотите открыть два файла с одинаковым именем одновременно.

Дэниел К
источник
Очень хорошая ссылка, спасибо - на самом деле я уже пробовал это из другого источника с принципиальным открытием в отдельном экземпляре, но снова отступил от него, но я думаю, что я бы выбрал пункт контекстного меню, чтобы открыть его отдельно, если это необходимо.
Александр Рюль