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

Вход

Регистрация

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

 

= Мир MS Excel/Что тормозит мою книгу - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Что тормозит мою книгу
Литр Дата: Пятница, 17.04.2026, 11:01 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 62
Репутация: 0 ±
Замечаний: 0% ±

2013
Доброго всем дня.

Есть книга (журнал) на 1200 строк который ежедневно прибавляет по 20-40 строк.
Хочу понять что его так сильно тормозит.

Варианты:

- А2:А1200 с номерами, которым по мере заполнения журнала назначаются гиперссылки на *.docx файлы
- D2:D1999 и J2:J1999 установлена проверка данных из:
Код
=СПИСОК!$A$1:$A$100

- два правила условного форматирования где закрашиваются строки в зависимости от значения в просматриваемом столбце

- на всем листе только две формулы расположенные в двух разных столбцах от 2ой строки до 1999 строки:
- Е2:Е1999
Код
=ЕСЛИОШИБКА(ИНДЕКС(СПИСОК!$B$1:$B$100;ПОИСКПОЗ(D2;СПИСОК!$A$1:$A$100;0));"")

- Н2:Н1999
Код
=ЕСЛИ(ИЛИ(F2="";G2="");"";СЦЕПИТЬ(F1185;" – ";G1185))


- так же на этом листе есть пара исполняемых макросов:
[vba]
Код

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo ExitHandler
    Application.EnableEvents = False

    Dim rng         As Range
    Set rng = Me.Range("F2:G1999", "K2:P1999")
' Все заглавные
            Target = UCase(Target.Value)
    If Target.CountLarge = 1 Then

        If Not Intersect(Target, rng) Is Nothing Then
            AutoFitRow Target
        End If

    End If

ExitHandler:
    Application.EnableEvents = True
End Sub

Private Sub AutoFitRow(ByVal cell As Range)
    Dim r           As Long
    r = cell.Row

    With Rows(r)
        .AutoFit

        If .RowHeight < 30 Then .RowHeight = 30
        If .RowHeight > 120 Then .RowHeight = 120
    End With

End Sub

[/vba]

- Ну и последнее: на соседнем листе есть 75 ячеек с такой формулой:

Код
{=ЕСЛИОШИБКА(ИНДЕКС('2026'!J$2:J$5000;МОДА(ЕСЛИ((СЧЁТЕСЛИ(A$1:A1;'2026'!J$2:J$5000)=0)*('2026'!J$2:J$5000>0);ПОИСКПОЗ('2026'!J$2:J$5000;'2026'!J$2:J$5000;0)+{0;0})));"")}


Вроде это все.

Также этой книге назначен общий доступ через: Рецензирование/Доступ к книге ("Разрешить изменять файл нескольким пользователям"). Но тормоза работают даже если с файлом работает только один юзер.

Как думаете, что из вышеперечисленного больше всего "тормозит" книгу

З.Ы. Тормоз проявляется при сохранении (до 10 сек может крутить колесо с сообщением "не отвечает)"


Сообщение отредактировал Литр - Пятница, 17.04.2026, 11:04
 
Ответить
СообщениеДоброго всем дня.

Есть книга (журнал) на 1200 строк который ежедневно прибавляет по 20-40 строк.
Хочу понять что его так сильно тормозит.

Варианты:

- А2:А1200 с номерами, которым по мере заполнения журнала назначаются гиперссылки на *.docx файлы
- D2:D1999 и J2:J1999 установлена проверка данных из:
Код
=СПИСОК!$A$1:$A$100

- два правила условного форматирования где закрашиваются строки в зависимости от значения в просматриваемом столбце

- на всем листе только две формулы расположенные в двух разных столбцах от 2ой строки до 1999 строки:
- Е2:Е1999
Код
=ЕСЛИОШИБКА(ИНДЕКС(СПИСОК!$B$1:$B$100;ПОИСКПОЗ(D2;СПИСОК!$A$1:$A$100;0));"")

- Н2:Н1999
Код
=ЕСЛИ(ИЛИ(F2="";G2="");"";СЦЕПИТЬ(F1185;" – ";G1185))


- так же на этом листе есть пара исполняемых макросов:
[vba]
Код

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo ExitHandler
    Application.EnableEvents = False

    Dim rng         As Range
    Set rng = Me.Range("F2:G1999", "K2:P1999")
' Все заглавные
            Target = UCase(Target.Value)
    If Target.CountLarge = 1 Then

        If Not Intersect(Target, rng) Is Nothing Then
            AutoFitRow Target
        End If

    End If

ExitHandler:
    Application.EnableEvents = True
End Sub

Private Sub AutoFitRow(ByVal cell As Range)
    Dim r           As Long
    r = cell.Row

    With Rows(r)
        .AutoFit

        If .RowHeight < 30 Then .RowHeight = 30
        If .RowHeight > 120 Then .RowHeight = 120
    End With

End Sub

[/vba]

- Ну и последнее: на соседнем листе есть 75 ячеек с такой формулой:

Код
{=ЕСЛИОШИБКА(ИНДЕКС('2026'!J$2:J$5000;МОДА(ЕСЛИ((СЧЁТЕСЛИ(A$1:A1;'2026'!J$2:J$5000)=0)*('2026'!J$2:J$5000>0);ПОИСКПОЗ('2026'!J$2:J$5000;'2026'!J$2:J$5000;0)+{0;0})));"")}


Вроде это все.

Также этой книге назначен общий доступ через: Рецензирование/Доступ к книге ("Разрешить изменять файл нескольким пользователям"). Но тормоза работают даже если с файлом работает только один юзер.

Как думаете, что из вышеперечисленного больше всего "тормозит" книгу

З.Ы. Тормоз проявляется при сохранении (до 10 сек может крутить колесо с сообщением "не отвечает)"

Автор - Литр
Дата добавления - 17.04.2026 в 11:01
Nic70y Дата: Пятница, 17.04.2026, 11:25 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 9262
Репутация: 2498 ±
Замечаний: 0% ±

Excel 2010
два правила условного форматирования
скорей всего они
удалите и проверьте будут ли тормоза
 
Ответить
Сообщение
два правила условного форматирования
скорей всего они
удалите и проверьте будут ли тормоза

Автор - Nic70y
Дата добавления - 17.04.2026 в 11:25
Литр Дата: Пятница, 17.04.2026, 13:05 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 62
Репутация: 0 ±
Замечаний: 0% ±

2013
Nic70y,
Да, чуть полегче стал. Теперь колесо крутит 5-6 сек. Но это все равно не норм.
Добавлю что таблица без ячеек находящихся вне диапазона таблицы.
При ctrl+end выделяется P2000 что и соответствует задуманному размеру. Размер файла сейчас ровно 500кв

 
Ответить
СообщениеNic70y,
Да, чуть полегче стал. Теперь колесо крутит 5-6 сек. Но это все равно не норм.
Добавлю что таблица без ячеек находящихся вне диапазона таблицы.
При ctrl+end выделяется P2000 что и соответствует задуманному размеру. Размер файла сейчас ровно 500кв


Автор - Литр
Дата добавления - 17.04.2026 в 13:05
Литр Дата: Пятница, 17.04.2026, 13:26 | Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 62
Репутация: 0 ±
Замечаний: 0% ±

2013
Как вы думаете, может гиперссылки? Все таки 1200 шт. Не хочу их удалить, так как потом придется долго такой массив обработать и присвоить их вновь.
 
Ответить
СообщениеКак вы думаете, может гиперссылки? Все таки 1200 шт. Не хочу их удалить, так как потом придется долго такой массив обработать и присвоить их вновь.

Автор - Литр
Дата добавления - 17.04.2026 в 13:26
Nic70y Дата: Пятница, 17.04.2026, 13:53 | Сообщение № 5
Группа: Друзья
Ранг: Экселист
Сообщений: 9262
Репутация: 2498 ±
Замечаний: 0% ±

Excel 2010
гиперссылки?
только что создал 17682 гиперссылок (не формул) не тормозит
формулы тяжелые у вас
 
Ответить
Сообщение
гиперссылки?
только что создал 17682 гиперссылок (не формул) не тормозит
формулы тяжелые у вас

Автор - Nic70y
Дата добавления - 17.04.2026 в 13:53
ExcelDK Дата: Понедельник, 20.04.2026, 16:59 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 141
Репутация: 9 ±
Замечаний: 0% ±

2010
Литр, точно не гиперссылки и макросы. У меня файл 113 Мбайт, 60 листов, основной лист 50 К строк, 253 столбца, 3,2 К гиперссылок. От автоматического пересчёта формул отказался давно, пользуюсь режимом "вручную". Основной лист - умная таблица, ввод данных в левых столбцах, правее - рассчитываемое. Формулы храню в 1 строке, 2 макроса: Первый копирует формулы из 1 строки и протягивает по открытым фильтрами строкам, пересчёт формул, копирование и вставка как значения. Второй копирует и протягивает по всем строкам, так же вставляет как значения. Фильтрами в шапке сортирую и фильтрую таблицу как мне надо, фильтры работают отлично, почти мгновенно.
Резюме - файл тормозят формулы и избыточное форматирование. На вкладке «‎Главная» разверните меню «‎Стили ячеек», Отыщите блок «‎Пользовательские» и по названиям или внешнему виду оцените, что из этого можно удалить. Там обычно бардак и куча мусора. Условное форматирование тоже минимизируйте по возможности.
 
Ответить
СообщениеЛитр, точно не гиперссылки и макросы. У меня файл 113 Мбайт, 60 листов, основной лист 50 К строк, 253 столбца, 3,2 К гиперссылок. От автоматического пересчёта формул отказался давно, пользуюсь режимом "вручную". Основной лист - умная таблица, ввод данных в левых столбцах, правее - рассчитываемое. Формулы храню в 1 строке, 2 макроса: Первый копирует формулы из 1 строки и протягивает по открытым фильтрами строкам, пересчёт формул, копирование и вставка как значения. Второй копирует и протягивает по всем строкам, так же вставляет как значения. Фильтрами в шапке сортирую и фильтрую таблицу как мне надо, фильтры работают отлично, почти мгновенно.
Резюме - файл тормозят формулы и избыточное форматирование. На вкладке «‎Главная» разверните меню «‎Стили ячеек», Отыщите блок «‎Пользовательские» и по названиям или внешнему виду оцените, что из этого можно удалить. Там обычно бардак и куча мусора. Условное форматирование тоже минимизируйте по возможности.

Автор - ExcelDK
Дата добавления - 20.04.2026 в 16:59
  • Страница 1 из 1
  • 1
Поиск:

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