Страницы: 1
RSS
Ошибка: Некоторые формулы на этом листе содержат недопустимые ссылки, периодически (локализовать ошибку трудно)
 
Проблему описал gsheppar в 2010 году на сайте mrexcel.com (по-английски). Оставлено без ответа.
http://www.mrexcel.com/forum/excel-questions/464779-run-time-error-1004-name-you-entered-not-valid.h...
Проблема "жива" и актуальна для версий Excel: 2010, 2013, 2016 (в 2007 - не проверял).

Сообщение от Excel: "Некоторые формулы на этом листе содержат недопустимые ссылки. Убедитесь, что ссылки на ячейки, имена диапазонов, определенные имена и связи с другими книгами в формулах указаны правильно."

Штатные инструменты ошибок не видят (надстройка Name Manager, вроде, тоже). Указанные объекты выведены программно и проанализированы. Ошибок нет, но обнаружено, что использование в книге формул, введенных впервые в Excel 2007, приводят к создание имен с префиксом "_xlfn." (своего рода, маркер):
Name                    RefersTo         RefersToLocal
_xlfn.COUNTIFS     =#NAME?      =#ИМЯ?
_xlfn.IFERROR       =#NAME?      =#ИМЯ?

Разумеется, в моей книге использованы соответствующие формулы (значения аргументов в скобках здесь рассматривать не надо):
=СЧЁТЕСЛИМН(КР;B$25;НаимОц10;$A26)
=ЕСЛИОШИБКА(ПЕРСЕНТИЛЬ(ЕСЛИ((КР=B$4)*НЕ(ЕПУСТО(БаллОц10));БаллОц10);0,25);НД())  

В Интернете пишут (врут), что это якобы случается, если открыть приложение, использующее новые формулы, в Excel 97-2003, но проверено, что это не так. Советуют также заменить новые формулы старыми решениями: например, вместо ЕСЛИОШИБКА (IFERROR) использовать комбинацию формул ЕСЛИ (IF) и ЕОШИБКА (ISERROR), а формулу СЧЁТЕСЛИМН (COUNTIFS) заменить на формулу СУММАПРОИЗВ (SUMPRODUCT) и т.д. и т.п. Увы, пробовал - заменил, но это не привело к желаемому результату: то самое сообщение продолжает выскакивать, как черт из табакерки: раздражает... Но всё работает. При этом, естественно, имена с префиксом "_xlfn." исчезают (после сохранения книги и повторного открытия).
Очевидно, что эта проблема как была в Excel 2010, так и осталась в Excel 2016.
При открытии книги всё обстоит нормально, но стоит, например, изменить раз или другой раз, третий... размер таблицы (ListObject) на листе, и вдруг, совершенно неожиданно, появляется упомянутое сообщение и потом уже выходит постоянно при всяком изменении или сохранении файла, пока не перезапустишь Excel. В таблице, и на листе, где она размещена, вообще нет ни одной формулы (только исходные данные). Локализовать ошибку не удается.
Есть предположение, что это "косяк" Excel. Неужели надо воссоздать всё приложение заново, поэтапно, осторожно и с оглядкой? И тогда посмотреть. Или как?
Возможно, что никакой связи упомянутого сообщения с префисом имен "_xlfn." нет вовсе. Кто знает, кто сталкивался с подобным?
Из-за этой ошибки приложение нельзя передать пользователям.
 
Цитата
...использование в книге формул, введенных впервые в Excel 2007, приводят к создание имен с префиксом "_xlfn."...
В Интернете пишут (врут), что это якобы случается, если открыть приложение, использующее новые формулы, в Excel 97-2003, но проверено, что это не так
А я буду утверждать, что Вы врете. Как проверили ошибочность утверждения?
 
Если в книге есть диаграммы, попробуйте удалить и создать заново.
 
Согласен - надо проверить диапазоны в диаграммах. Они могли быть созданы при помощи как раз имен, который впоследствии были удалены. Диаграммы можно не удалять, но изменить источник данных не помешало бы: Правая кнопка мыши на диаграмме -Выбрать данные.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Просто я не открывал свое приложение в Excel 97-2003: у меня его нет. А проблема есть.
А диаграмм много, очень много, и они достаточно сложные, саморасширяющиеся (по Уокенбаху).
Ошибок, вроде, нет: они работают правильно. С ними другая проблема: сбрасывается заливка  одного ряда на дефолтную при изменении источникам данных — пришлось добавить кнопку "Заливка ряда…". Но тема не об этом. Связи не вижу, поскольку сообщение об ошибке появляется крайне неожиданно, вылезает не сразу… Я тоже сначала обрадовался, думая, что всё дело в неправильном значении "=#Имя?" в имени с префиксом "_xlfn.".  
 
Цитата
eeigor написал: Связи не вижу
ну тогда удачи. Вам советуют, а Вы не видите связи. Зачем тогда обратились на форум? Я вот явно вижу связь: именно такое сообщение как у Вас появляется, если в источнике диаграммы есть ошибка. При этом диаграмма будет обновляться корректно в соответствии с данными. Но раз Вы уверены, что у Вас все же дело в барабашке - ищите его дальше.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Удаляю по диаграмме, проверяю работоспособность. Отпишусь позднее. Спасибо.
Изменено: eeigor - 08.11.2016 21:41:38
 
Разрешилось. Проверил диапазоны данных всех диаграмм (ошибок нет). Удалял по очереди каждую, тестируя приложение. Проблема была в комбинированной саморасширяющейся квартильной диаграмме (не Excel 2016). Но создавать заново не стал.
Сохранил проект в формате Excel 97-2003, а потом вернул обратно (одна ссылка разрушилась - восстановил). И всё, вроде, работает. Сброс заливки ряда к дефолтной тоже исчез.
Вывод: дело было действительно в диаграммах, но решение нашел попроще. И косяки (барабашки) все-таки в Excel.
Всем спасибо. Тема закрыта.
 
Доброго времени суток! Хотел бы поделиться информацией по данному вопросу в дополнение к сказанному. Кому-то, возможно, поможет.
1) Прежде всего, прав был The_Prist: дело действительно в ссылках, используемых в диаграммах, поскольку штатный Checker их просто не проверяет. Спасибо.
2) Ошибка из сообщения ниже появлялась при изменении размера таблицы Excel (ListObject), причем изменении только по высоте (не в ширину), а также при действиях с диаграммами – именно там, в подписях ряда использовалась ссылка-массив, вычисленный программно (RefersTo = "={...}").
Но имя и значение абсолютно корректны и в других местах имя проблем не вызывает. И в диаграммах все работает, но...

Сообщение Excel:
"Некоторые формулы на этом листе содержат недопустимые ссылки.
Убедитесь, что ссылки на ячейки, имена диапазонов, определенные имена и связи с другими книгами в формулах указаны правильно".

Причем при обновлении имени самого на себя ошибка исчезала (это еще надо было догадаться так попробовать):
ThisWorkbook.Names("Мое_имя").RefersTo = ThisWorkbook.Names("Мое_имя").RefersTo
Как-то так. Однако, весьма странно.
3) В итоге заменил ссылку-массив (вычисленный) ссылкой на диапазон, и всё стало нормально.
4) Попутно повторю (писал выше), что ошибку сброса заливки ряда на дефолтную я устранил сохранением файл в формате Excel 97-2003 (*.xls) и потом обратно в *.xlsm.
5) Добавлю: иногда объект ListObject "клинит": исчезает двунаправленная стрелка изменения размера таблицы вручную, и не помогает перезапуск Excel или удаление и повторное создание таблицы на этом же листе - приходится менять лист. Об этом тоже пишут в Сети.
Excel сложная программа (не в плане использования), создавалась годами, постоянно изменяется... И ошибки в ней были, есть и будут! И это нормально.
Изменено: eeigor - 08.11.2016 22:16:22
 
Объявилась такая ошибка в одной книге, открыл другую книгу, там такая же ошибка выскакивает, закрыл все книги, открыл по новой, ошибки нет)
Страницы: 1
Читают тему
Наверх