Ошибка #знач! в Excel

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
DanilK
Сообщения: 2
Зарегистрирован: 10 июн 2004, 10:00
Откуда: Днепропетровск
Контактная информация:

Приветствую участников форума!
Может кто пояснить мне, как избегать появления ошибки #знач! в Excel?
Ситуация такова: есть сводный файл, в котором собраны ссылки на другие файлы, в основном на сетевых дисках. При его открытии в ячейках стоят числовые значения, как и задумывалось... Однако, если обновить значения исходных файлов, возникает вышеуказанная ошибка... Приходится одновременно со сводным открывать и исходные файлы, тогда все ошибки исчезают, и значения обновляются - то есть смешения форматов ячеек нет!?
Похожая ситуация возникает, если при открытом сводном файле открыть какой либо, даже и не связанный с ним файл Excel - вместо чисел появляются #знач!
Таким образом, процесс работы со сводным файлом "несколько" усложняется, в итоге приходится открывать практически все исходные файлы по цепочке...
Подскажите, если сталкивались с такой ситуацией, как обновлять значения, не открывая все связанные файлы?
Windows 2000 Professional, Excel 2002
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

1. Приведите текст формулы со ссылкой.
2. В Сервис/Параметры проверьте, чтобы были включены флажки "Обновлять удаленные ссылки" и "Сохранять значения внешних связей"; выключен "Игнорировать DDE-запросы от других приложений".

Сразу при открытии видны числа так как Excel сохраняет не только формулы но и результаты. Проблема в том, что формула с внешней ссылкой не может быть рассчитана (либо из-за некорректной записи самих формул, либо из-за настроек Excel). Ну и я надеюсь, что исходные файлы конечно же не перемещаются ежедневно из одной папки в другую. :)
DanilK
Сообщения: 2
Зарегистрирован: 10 июн 2004, 10:00
Откуда: Днепропетровск
Контактная информация:

Naeel Maqsudov
1. Так ведут себя обычно функции, вроде ВПР, СРЗНАЧ, а иногда просто ссылки на ячейку. Пример:
=СУММЕСЛИ('M:\Tov_otch 2004\Base\[June.xls]Fact'!$V$2:$V$34;A26;'M:\Tov_otch 2004\Base\[June.xls]Fact'!$O$2:$O$34)
Если просто обновить, то будет #ЗНАЧ!, единственный выход - одновременное открытие связанных файлов... :(
Причем, там же есть просто ссылка ='M:\Tov_otch 2004\Base\[June.xls]Fact'!$O$39 так вот она обновляется!

Насчет форматов: по вышеуказанной ссылке формат сравниваемых ячеек общий, а ячеек с данными - числовой с 2 десятичными знаками и разделителем групп разрядов

2. В Сервис/Параметры флажки поставлены именно так, как Вы указали

Насчет перемещений файлов: с ними работает очень ограниченный круг работников, понимающих последствия таких действий, но и, насколько я понимаю, их следствием была бы ошибка #ССЫЛКА! :)
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

насколько я понимаю, их следствием была бы ошибка #ССЫЛКА!
Нет.
#ССЫЛКА относится к последней части ссылки (за знаком !). Возникает, когда образовалась (в результате модификации формул после удаления/перемещения/добавления диапазонов на листе) ссылка, например, на несуществующую ячейку.
#ЗНАЧ происходит при несоответствии типов (КОРЕНЬ(А1), при текстовом значении в А1) а также при возникновении ошибок несоответствия типов или арифметического переполнения в VBA-функциях. Т.е. связана с невозможностью рассчитать результат выражения. Эта ошибка не связана с внешними ссылками.

По существу проблемы есть следующее предположение:
Так как Excel импользует разные механизмы для доступа к открытым и закрытым книгам, то возможно из-за того, что данная связанная книга имеет слишком большой размер, Excel не может вычислить формулу, сожержащую несколько DDE-запросов, но вычисляет формулу с одним DDE-запросом к ней.
Попробуйте СУММЕСЛИ высчислять три June.xls, т.е. свести все формулы с внешними ссылками к тривиальным ссылкам. Попробуйте уменьшить размер внещних книг. Если эксперименты с уменьшением размера дадут положительный результат, то значит решением проблемы будет только перевоз всего проекта на другую платформу, например, реализовать все в реляционной СУБД.
Ответить