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

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

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

аналогично, Офис 2007 СП2.
...
Рейтинг: 0 / 0
21.01.2010, 14:45
    #36422986
Djon Player
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при считывании кривой формулы в Excel
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
21.01.2010, 14:58
    #36423027
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при считывании кривой формулы в Excel
У меня ХР СП3 с 2000 офисом, тоже короткий вариант.
А результат подсчёта в обоих офисах тоже отличается?
...
Рейтинг: 0 / 0
21.01.2010, 15:22
    #36423115
qwrqwr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при считывании кривой формулы в Excel
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
21.01.2010, 16:12
    #36423290
Djon Player
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при считывании кривой формулы в Excel
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
21.01.2010, 16:19
    #36423318
Djon Player
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при считывании кривой формулы в Excel
Hugo121У меня ХР СП3 с 2000 офисом, тоже короткий вариант.
А результат подсчёта в обоих офисах тоже отличается?Дело в том, что ссылки указанные в формуле не доступны для меня, и ячейки в оригинальном отчёте содержащие аналогичные формулы вобще скрыты.
Видимо, человек, который делал эти файлы, ссылался на какие-то свои локальные файлы и не удосужился потом эти ссылки убрать оттуда, а просто скрыл ячейки.
Думаю, что если искусственно сгенерировать указанные пути и туда положить файлы с циферками, то Excel 2003 бы правильно всё подсчитал. Но что-то мне лень проводить эксперименты, т.к. меня интересовало лишь, как избежать возникновения ошибки при сравнении двух файлов за разные периоды. Выходит, что единственный вариант, проводить сверку в Excel 2007.
...
Рейтинг: 0 / 0
21.01.2010, 16:26
    #36423335
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при считывании кривой формулы в Excel
Если искусственно сгенерировать указанные пути и туда положить файлы (хоть пустые) и их открыть, то формула станет короче, и может быть её можно будет сравнить :)
Но вот как на 2003/2000 узнать 100% эти пути/файлы?
...
Рейтинг: 0 / 0
21.01.2010, 16:31
    #36423348
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при считывании кривой формулы в Excel
Хотя в СкриптЕдиторе есть строка:
<x:Path>R:\SGB\OSOOMS\Отчетность\РСБУ\Отчетность 2008\3 квартал\Исходные файлы\ЕП\Etalon_Ep2008.09.01.xls</x:Path>,
вручную можно её выбрать, сгенерить такой файл можно уже скриптом... но проще наверное 2007 под это дело купить :) Или сверять там, где оно работает.
...
Рейтинг: 0 / 0
22.01.2010, 09:04
    #36424273
Djon Player
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при считывании кривой формулы в Excel
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
22.01.2010, 09:31
    #36424312
Djon Player
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при считывании кривой формулы в Excel
Выше указанным скриптом выяснил, что файл там всего один "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
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Ошибка при считывании кривой формулы в Excel / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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