powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Ошибка при считывании кривой формулы в Excel
13 сообщений из 13, страница 1 из 1
Ошибка при считывании кривой формулы в Excel
    #36420806
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Периодически делаю макросом сверку старых шаблонов отчётов с новыми шаблонами, чтобы выяснить какие изменения в новом шаблоне и были ли они вообще.
С одним отчётом постоянно возникает одна и та-же ошибка на некоторых ячейках, в результате которой макрос завершается с ошибкой 1004 и останавливает свою работу.
Ошибка возникает при попытке получить формулы в ячейке с помощь обращения через .formula.
Я взял этот косячный файл, в нём удалил все листы, а на листе с косячной формулой удалил все данные во всех ячейках, оставил лишь одну ячейку Z6 в которой такая ошибка возникает.
Файл прикладываю к этому сообщению.

В файл встроил макрос, который вызывает ошибку 1004.
Код: plaintext
1.
2.
3.
Sub test()
 MsgBox Sheets( 1 ).Range("Z6").Formula
End Sub
Обойти эту ошибку при сверке конечно можно, но это будет не совсем корректно, т.к. сверять нужно формулы во всех ячейках.
Формула действительно там корявая, идут связи на какие-то файлы, но тем не менее, почему я не могу считать саму формулы, ведь сам Excel 2003 её показывает.
...
Рейтинг: 0 / 0
Ошибка при считывании кривой формулы в Excel
    #36420808
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Djon Player,

Прикладываю сам файл
...
Рейтинг: 0 / 0
Ошибка при считывании кривой формулы в Excel
    #36421067
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня ошибки нет....
...
Рейтинг: 0 / 0
Ошибка при считывании кривой формулы в Excel
    #36421113
Mozok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hugo121,

аналогично, Офис 2007 СП2.
...
Рейтинг: 0 / 0
Ошибка при считывании кривой формулы в Excel
    #36422986
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MozokHugo121,

аналогично, Офис 2007 СП2.
Попробовал тоже Excel 2007 SP2, в нём действительно ошибку не выдаёт
А вот в Excel 2003 SP3 выдаёт ошибку 1004 "Application-defined or object-defined error".
Причем если смотреть непосредственно формулы в ячейке в Excel 2003 и Excel 2007 то она отличается.

Excel 2007:
=ЕСЛИ(ABS(O6+O30-O43+('R:\SGB\OSOOMS\Отчетность\РСБУ\Отчетность 2008\3 квартал\Исходные файлы\ЕП\[Etalon_Ep2008.09.01.xls]Расходы'!L245+'R:\SGB\OSOOMS\Отчетность\РСБУ\Отчетность 2008\3 квартал\Исходные файлы\ЕП\[Etalon_Ep2008.09.01.xls]Расходы'!L290+'R:\SGB\OSOOMS\Отчетность\РСБУ\Отчетность 2008\3 квартал\Исходные файлы\ЕП\[Etalon_Ep2008.09.01.xls]Расходы'!M245+'R:\SGB\OSOOMS\Отчетность\РСБУ\Отчетность 2008\3 квартал\Исходные файлы\ЕП\[Etalon_Ep2008.09.01.xls]Расходы'!M290+'R:\SGB\OSOOMS\Отчетность\РСБУ\Отчетность 2008\3 квартал\Исходные файлы\ЕП\[Etalon_Ep2008.09.01.xls]Расходы'!N245+'R:\SGB\OSOOMS\Отчетность\РСБУ\Отчетность 2008\3 квартал\Исходные файлы\ЕП\[Etalon_Ep2008.09.01.xls]Расходы'!N290+'R:\SGB\OSOOMS\Отчетность\РСБУ\Отчетность 2008\3 квартал\Исходные файлы\ЕП\[Etalon_Ep2008.09.01.xls]Расходы'!O245+'R:\SGB\OSOOMS\Отчетность\РСБУ\Отчетность 2008\3 квартал\Исходные файлы\ЕП\[Etalon_Ep2008.09.01.xls]Расходы'!O290+'R:\SGB\OSOOMS\Отчетность\РСБУ\Отчетность 2008\3 квартал\Исходные файлы\ЕП\[Etalon_Ep2008.09.01.xls]Расходы'!P245+'R:\SGB\OSOOMS\Отчетность\РСБУ\Отчетность 2008\3 квартал\Исходные файлы\ЕП\[Etalon_Ep2008.09.01.xls]Расходы'!P290+'R:\SGB\OSOOMS\Отчетность\РСБУ\Отчетность 2008\3 квартал\Исходные файлы\ЕП\[Etalon_Ep2008.09.01.xls]Расходы'!Q245+'R:\SGB\OSOOMS\Отчетность\РСБУ\Отчетность 2008\3 квартал\Исходные файлы\ЕП\[Etalon_Ep2008.09.01.xls]Расходы'!Q290))<0,2;0;O6+O30-O43+('R:\SGB\OSOOMS\Отчетность\РСБУ\Отчетность 2008\3 квартал\Исходные файлы\ЕП\[Etalon_Ep2008.09.01.xls]Расходы'!L245+'R:\SGB\OSOOMS\Отчетность\РСБУ\Отчетность 2008\3 квартал\Исходные файлы\ЕП\[Etalon_Ep2008.09.01.xls]Расходы'!L290+'R:\SGB\OSOOMS\Отчетность\РСБУ\Отчетность 2008\3 квартал\Исходные файлы\ЕП\[Etalon_Ep2008.09.01.xls]Расходы'!M245+'R:\SGB\OSOOMS\Отчетность\РСБУ\Отчетность 2008\3 квартал\Исходные файлы\ЕП\[Etalon_Ep2008.09.01.xls]Расходы'!M290+'R:\SGB\OSOOMS\Отчетность\РСБУ\Отчетность 2008\3 квартал\Исходные файлы\ЕП\[Etalon_Ep2008.09.01.xls]Расходы'!N245+'R:\SGB\OSOOMS\Отчетность\РСБУ\Отчетность 2008\3 квартал\Исходные файлы\ЕП\[Etalon_Ep2008.09.01.xls]Расходы'!N290+'R:\SGB\OSOOMS\Отчетность\РСБУ\Отчетность 2008\3 квартал\Исходные файлы\ЕП\[Etalon_Ep2008.09.01.xls]Расходы'!O245+'R:\SGB\OSOOMS\Отчетность\РСБУ\Отчетность 2008\3 квартал\Исходные файлы\ЕП\[Etalon_Ep2008.09.01.xls]Расходы'!O290+'R:\SGB\OSOOMS\Отчетность\РСБУ\Отчетность 2008\3 квартал\Исходные файлы\ЕП\[Etalon_Ep2008.09.01.xls]Расходы'!P245+'R:\SGB\OSOOMS\Отчетность\РСБУ\Отчетность 2008\3 квартал\Исходные файлы\ЕП\[Etalon_Ep2008.09.01.xls]Расходы'!P290+'R:\SGB\OSOOMS\Отчетность\РСБУ\Отчетность 2008\3 квартал\Исходные файлы\ЕП\[Etalon_Ep2008.09.01.xls]Расходы'!Q245+'R:\SGB\OSOOMS\Отчетность\РСБУ\Отчетность 2008\3 квартал\Исходные файлы\ЕП\[Etalon_Ep2008.09.01.xls]Расходы'!Q290))


Excel 2003:
=O6+O30-O43 'R:\SGB\OSOOMS\Отчетность\РСБУ\Отчетность 2008\3 квартал\Исходные файлы\ЕП\[Etalon_Ep2008.09.01.xls]Расходы'!L245+'R:\SGB\OSOOMS\Отчетность\РСБУ\Отчетность 2008\3 квартал\Исходные файлы\ЕП\[Etalon_Ep2008.09.01.xls]Расходы'!L290+'R:\SGB\OSOOMS\Отчетность\РСБУ\Отчетность 2008\3 квартал\Исходные файлы\ЕП\[Etalon_Ep2008.09.01.xls]Расходы'!M245+'R:\SGB\OSOOMS\Отчетность\РСБУ\Отчетность 2008\3 квартал\Исходные файлы\ЕП\[Etalon_Ep2008.09.01.xls]Расходы'!M290+'R:\SGB\OSOOMS\Отчетность\РСБУ\Отчетность 2008\3 квартал\Исходные файлы\ЕП\[Etalon_Ep2008.09.01.xls]Расходы'!N245+'R:\SGB\OSOOMS\Отчетность\РСБУ\Отчетность 2008\3 квартал\Исходные файлы\ЕП\[Etalon_Ep2008.09.01.xls]Расходы'!N290+'R:\SGB\OSOOMS\Отчетность\РСБУ\Отчетность 2008\3 квартал\Исходные файлы\ЕП\[Etalon_Ep2008.09.01.xls]Расходы'!O245+'R:\SGB\OSOOMS\Отчетность\РСБУ\Отчетность 2008\3 квартал\Исходные файлы\ЕП\[Etalon_Ep2008.09.01.xls]Расходы'!O290 'R:\SGB\OSOOMS\Отчетность\РСБУ\Отчетность 2008\3 квартал\Исходные файлы\ЕП\[Etalon_Ep2008.09.01.xls]


Вобщем видно, что Excel 2003 показывает её некорректно.
Всё таки можно ли как-то избежать данной ошибки используя именно Excel 2003?
...
Рейтинг: 0 / 0
Ошибка при считывании кривой формулы в Excel
    #36423027
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня ХР СП3 с 2000 офисом, тоже короткий вариант.
А результат подсчёта в обоих офисах тоже отличается?
...
Рейтинг: 0 / 0
Ошибка при считывании кривой формулы в Excel
    #36423115
Фотография qwrqwr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Djon Player
Попробовал тоже Excel 2007 SP2, в нём действительно ошибку не выдаёт
А вот в Excel 2003 SP3 выдаёт ошибку 1004 "Application-defined or object-defined error".
Причем если смотреть непосредственно формулы в ячейке в Excel 2003 и Excel 2007 то она отличается.
В Экселе 2003 максимальная длина формулы - 1024 знака.
В Экселе 2007 максимальная длина формулы - 8192 знака.

В вашей верной формуле ~2800 символов. (ахринедь)
В обрезанной - ровно 1024.
...
Рейтинг: 0 / 0
Ошибка при считывании кривой формулы в Excel
    #36423290
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwrqwrDjon Player
Попробовал тоже Excel 2007 SP2, в нём действительно ошибку не выдаёт
А вот в Excel 2003 SP3 выдаёт ошибку 1004 "Application-defined or object-defined error".
Причем если смотреть непосредственно формулы в ячейке в Excel 2003 и Excel 2007 то она отличается.
В Экселе 2003 максимальная длина формулы - 1024 знака.
В Экселе 2007 максимальная длина формулы - 8192 знака.

В вашей верной формуле ~2800 символов. (ахринедь)
В обрезанной - ровно 1024.Вобщем понятно, структура Excel 2003 видимо позволяет хранить гораздо больше знаков формулы, чем 1024, но корректно обрабатывает только 1024 знака.
...
Рейтинг: 0 / 0
Ошибка при считывании кривой формулы в Excel
    #36423318
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hugo121У меня ХР СП3 с 2000 офисом, тоже короткий вариант.
А результат подсчёта в обоих офисах тоже отличается?Дело в том, что ссылки указанные в формуле не доступны для меня, и ячейки в оригинальном отчёте содержащие аналогичные формулы вобще скрыты.
Видимо, человек, который делал эти файлы, ссылался на какие-то свои локальные файлы и не удосужился потом эти ссылки убрать оттуда, а просто скрыл ячейки.
Думаю, что если искусственно сгенерировать указанные пути и туда положить файлы с циферками, то Excel 2003 бы правильно всё подсчитал. Но что-то мне лень проводить эксперименты, т.к. меня интересовало лишь, как избежать возникновения ошибки при сравнении двух файлов за разные периоды. Выходит, что единственный вариант, проводить сверку в Excel 2007.
...
Рейтинг: 0 / 0
Ошибка при считывании кривой формулы в Excel
    #36423335
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если искусственно сгенерировать указанные пути и туда положить файлы (хоть пустые) и их открыть, то формула станет короче, и может быть её можно будет сравнить :)
Но вот как на 2003/2000 узнать 100% эти пути/файлы?
...
Рейтинг: 0 / 0
Ошибка при считывании кривой формулы в Excel
    #36423348
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хотя в СкриптЕдиторе есть строка:
<x:Path>R:\SGB\OSOOMS\Отчетность\РСБУ\Отчетность 2008\3 квартал\Исходные файлы\ЕП\Etalon_Ep2008.09.01.xls</x:Path>,
вручную можно её выбрать, сгенерить такой файл можно уже скриптом... но проще наверное 2007 под это дело купить :) Или сверять там, где оно работает.
...
Рейтинг: 0 / 0
Ошибка при считывании кривой формулы в Excel
    #36424273
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hugo121Если искусственно сгенерировать указанные пути и туда положить файлы (хоть пустые) и их открыть, то формула станет короче, и может быть её можно будет сравнить :)
Но вот как на 2003/2000 узнать 100% эти пути/файлы?Стопроцентно узнать пути очень просто, нужно посмотреть все связи в файле, например таким кодом:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Sub Показать_список_связей()
 Dim aLinks As Variant
 Dim i As Integer
 
 aLinks = ActiveWorkbook.LinkSources(xlLinkTypeExcelLinks)
 If Not IsEmpty(aLinks) Then
  For i =  1  To UBound(aLinks)
   MsgBox aLinks(i)
  Next i
 End If
End Sub

Видимо действительно проще делать сверку в Excel 2007. Ну а тому, у кого файлы эти на которые идут связи есть, сверку делать и не нужно, т.к. значит он делает модификации в этом файле и следовательно знает, что там поменялось.
...
Рейтинг: 0 / 0
Ошибка при считывании кривой формулы в Excel
    #36424312
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выше указанным скриптом выяснил, что файл там всего один "Etalon_Ep2008.09.01.xls", он должен распологаться в папке "R:\SGB\OSOOMS\Отчетность\РСБУ\Отчетность 2008\3 квартал\Исходные файлы\ЕП".
Так-же выяснил уже в Excel 2007, что все ссылки идут на лист Расходы и в расчётах используются ячейки L245, L290, M245, M290, N245, N290, O245, O290, P245, P290, Q245, Q290.
Я с помощью bat-файла создал папку командой
Код: plaintext
mkdir "R:\SGB\OSOOMS\Отчетность\РСБУ\Отчетность 2008\3 квартал\Исходные файлы\ЕП\"
В эту папку поместил файл "Etalon_Ep2008.09.01.xls", в нём один лист обозвал расходы и в указанные выше ячейки поместил циферки 1,2 и т.д. до 12 соответственно порядку упоминания ячеек выше.
И в Excel 2003 и в Excel 2007 результат один 66.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Ошибка при считывании кривой формулы в Excel
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]