Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Длина формулы превышает 8192 знака - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Длина формулы превышает 8192 знака
Almost Дата: Понедельник, 30.12.2019, 16:18 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 42
Репутация: 2 ±
Замечаний: 0% ±

Excel 2016
Уважаемые форумчане,

имеется древняя относительно большая (4М) сложная двоичная книга на 45 листов, с кучей имён, объектов, макросов, проверкой данных, с условным и специальным форматированием, группировками и пр. Не было разве что внешних связей. Вдруг понадобилось подружить её с другой системой и для этого конвертировать в *.xlsm, но пациент туда не хочет. Ошибка:

"Длина одной или нескольких формул в данной книге превышает допустимую длину, равную 8192 знакам. Чтобы обойти это ограничение, следует сохранить данную книгу в формате двоичной книги Excel"

В поисках источника файл раздербанен до 1 листа, причём вновь созданного. Удалены все родные листы, имена (в т.ч. скрытые), макросы. Но даже эта культя чем-то упирается и не идёт в *.xlsm. Осталось подозрение на содержимое папки External Links, но если его убрать, Excel падает на колени при попытке открыть и восстановить.

Есть идеи?
К сообщению приложен файл: test.xlsb (88.5 Kb)


Сообщение отредактировал Almost - Понедельник, 30.12.2019, 16:19
 
Ответить
СообщениеУважаемые форумчане,

имеется древняя относительно большая (4М) сложная двоичная книга на 45 листов, с кучей имён, объектов, макросов, проверкой данных, с условным и специальным форматированием, группировками и пр. Не было разве что внешних связей. Вдруг понадобилось подружить её с другой системой и для этого конвертировать в *.xlsm, но пациент туда не хочет. Ошибка:

"Длина одной или нескольких формул в данной книге превышает допустимую длину, равную 8192 знакам. Чтобы обойти это ограничение, следует сохранить данную книгу в формате двоичной книги Excel"

В поисках источника файл раздербанен до 1 листа, причём вновь созданного. Удалены все родные листы, имена (в т.ч. скрытые), макросы. Но даже эта культя чем-то упирается и не идёт в *.xlsm. Осталось подозрение на содержимое папки External Links, но если его убрать, Excel падает на колени при попытке открыть и восстановить.

Есть идеи?

Автор - Almost
Дата добавления - 30.12.2019 в 16:18
bmv98rus Дата: Понедельник, 30.12.2019, 20:11 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4113
Репутация: 769 ±
Замечаний: 0% ±

Excel 2013/2016
значит нужно просто перенести листы в другую книгу, ну и макросы тоже.


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
Сообщениезначит нужно просто перенести листы в другую книгу, ну и макросы тоже.

Автор - bmv98rus
Дата добавления - 30.12.2019 в 20:11
Almost Дата: Четверг, 09.01.2020, 10:30 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 42
Репутация: 2 ±
Замечаний: 0% ±

Excel 2016
Тоже не помогло. Даже если один любой лист переношу в новую книгу, она уже не сохраняется в формате xlsm и выдаёт ту же ошибку.
 
Ответить
СообщениеТоже не помогло. Даже если один любой лист переношу в новую книгу, она уже не сохраняется в формате xlsm и выдаёт ту же ошибку.

Автор - Almost
Дата добавления - 09.01.2020 в 10:30
Nic70y Дата: Четверг, 09.01.2020, 10:36 | Сообщение № 4
Группа: Друзья
Ранг: Экселист
Сообщений: 8998
Репутация: 2366 ±
Замечаний: 0% ±

Excel 2010
сохранил как .xls
.xls сохранил как .xlsm


ЮMoney 41001841029809
 
Ответить
Сообщениесохранил как .xls
.xls сохранил как .xlsm

Автор - Nic70y
Дата добавления - 09.01.2020 в 10:36
Almost Дата: Среда, 29.01.2020, 15:45 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 42
Репутация: 2 ±
Замечаний: 0% ±

Excel 2016
Это прокатывало с обрезанным примером, но не сработало на большом исходнике.

В итоге помогло:

1. Изменить расширение на *.zip
2. Открыть файл архиватором
3. Удалить файлы внешних ссылок в папке "ExternalLinks" и подпапке "rels", не удаляя сами папки (иначе Excel рухнет)
4. Вернуть оригинальное расширение
5. Открыть в Excel и разрешить восстановление
 
Ответить
СообщениеЭто прокатывало с обрезанным примером, но не сработало на большом исходнике.

В итоге помогло:

1. Изменить расширение на *.zip
2. Открыть файл архиватором
3. Удалить файлы внешних ссылок в папке "ExternalLinks" и подпапке "rels", не удаляя сами папки (иначе Excel рухнет)
4. Вернуть оригинальное расширение
5. Открыть в Excel и разрешить восстановление

Автор - Almost
Дата добавления - 29.01.2020 в 15:45
_Boroda_ Дата: Среда, 29.01.2020, 21:30 | Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 16705
Репутация: 6499 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Удалены все родные ... имена (в т.ч. скрытые)

Вообще-то у Вас в этом файле 3140 скрытых имен :D
Вот такой макрос делает все имена видимыми и на листе выводит те, длина которых более 8192 знаков
[vba]
Код
Sub tt()
    With ThisWorkbook
        m_ = .Names.Count
'        MsgBox "Кол-во имен - " & m_
        For i = 1 To m_
            .Names(i).Visible = 1
            l_ = .Names(i).RefersToLocal
            If Len(l_) > 8192 Then
                k_ = k_ + 1
                Cells(k_, 1) = .Names(i).NameLocal
                Cells(k_, 2) = "'" & l_
                Cells(k_, 3) = Len(l_)
            End If
        Next i
    End With
End Sub
[/vba]
А вот такой удаляет те имена, которые можно (оставшиеся 9 штук можно удалить руками, а можно и не трогать, они не мешают)
[vba]
Код
Sub ttt()
    With ThisWorkbook
        On Error Resume Next
        For i = .Names.Count To 1 Step -1
            .Names(i).Delete
        Next i
    End With
End Sub
[/vba]
Итог в файле _3
К сообщению приложен файл: test99_2.xlsb (95.5 Kb) · test99_3.xlsm (19.7 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
Удалены все родные ... имена (в т.ч. скрытые)

Вообще-то у Вас в этом файле 3140 скрытых имен :D
Вот такой макрос делает все имена видимыми и на листе выводит те, длина которых более 8192 знаков
[vba]
Код
Sub tt()
    With ThisWorkbook
        m_ = .Names.Count
'        MsgBox "Кол-во имен - " & m_
        For i = 1 To m_
            .Names(i).Visible = 1
            l_ = .Names(i).RefersToLocal
            If Len(l_) > 8192 Then
                k_ = k_ + 1
                Cells(k_, 1) = .Names(i).NameLocal
                Cells(k_, 2) = "'" & l_
                Cells(k_, 3) = Len(l_)
            End If
        Next i
    End With
End Sub
[/vba]
А вот такой удаляет те имена, которые можно (оставшиеся 9 штук можно удалить руками, а можно и не трогать, они не мешают)
[vba]
Код
Sub ttt()
    With ThisWorkbook
        On Error Resume Next
        For i = .Names.Count To 1 Step -1
            .Names(i).Delete
        Next i
    End With
End Sub
[/vba]
Итог в файле _3

Автор - _Boroda_
Дата добавления - 29.01.2020 в 21:30
Almost Дата: Четверг, 30.01.2020, 14:39 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 42
Репутация: 2 ±
Замечаний: 0% ±

Excel 2016
_Boroda_, Офигеть, спасибо большое. Я прогонял такой макрос, думал что он удалит все скрытые имена:

[vba]
Код
Sub tt2tt()

    For Each nm In ActiveWorkbook.Names

        If Not nm.Visible Then nm.Delete

    Next nm

End Sub
[/vba]
 
Ответить
Сообщение_Boroda_, Офигеть, спасибо большое. Я прогонял такой макрос, думал что он удалит все скрытые имена:

[vba]
Код
Sub tt2tt()

    For Each nm In ActiveWorkbook.Names

        If Not nm.Visible Then nm.Delete

    Next nm

End Sub
[/vba]

Автор - Almost
Дата добавления - 30.01.2020 в 14:39
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!