Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 23.11.2008, 23:45   #1
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию При переключении листов, дергает экран

При переключении листов, дергает экран.
Что только не делал, не помогает, если отключаю событие, то нет, сумм, ввода данных. ?
Кл. PgUp и PgDn листают дни в Листах.
Вложения
Тип файла: rar ZXC.rar (36.8 Кб, 12 просмотров)
valerij вне форума
Старый 24.11.2008, 00:00   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
При переключении листов, дергает экран.
Я не сказал бы, что заметно дёргается... даже если обновление экрана включено...

Да и как ты хотел - данные ведь на экране изменяются (при переходе от одного для к другому), в итоге экран-то всё равно надо перерисовывать...


Ну, сделай так, может лучше будет:

Код:
Sub Vniz()
    Application.ScreenUpdating = False
        AdrR = ActiveCell.Row + St: AdrC = ActiveCell.Column
        If AdrR > 1582 Then AdrR = 3
        On Error Resume Next
        ActiveSheet.ScrollArea = ""    ' временно отключаем блокировку, чтобы можно было пролистать экран
        ActiveWindow.ScrollRow = ActiveWindow.ScrollRow + St    ' проматываем экран на St = 28 строк вниз
        Dim area As Range    ' area - диапазон доступных для редактирования ячеек
        Set area = Range(Cells(ActiveWindow.ScrollRow, "A"), Cells(ActiveWindow.ScrollRow + St - 2, "O"))
        ActiveSheet.ScrollArea = area.Address: area.Cells(St - 25, 4).Select
    Application.ScreenUpdating = True
End Sub

Sub Vverh()
    Application.ScreenUpdating = False
        AdrR = ActiveCell.Row - St: AdrC = ActiveCell.Column
        If AdrR < 0 Then AdrR = 3
        On Error Resume Next
        ActiveSheet.ScrollArea = ""    ' временно отключаем блокировку, чтобы можно было пролистать экран
        ActiveWindow.ScrollRow = ActiveWindow.ScrollRow - St    ' проматываем экран на St = 28 строк вверх
        Dim area As Range    ' area - диапазон доступных для редактирования ячеек
        Set area = Range(Cells(ActiveWindow.ScrollRow, "A"), Cells(ActiveWindow.ScrollRow + St - 2, "O"))
        ActiveSheet.ScrollArea = area.Address: area.Cells(St - 25, 4).Select
    Application.ScreenUpdating = True
End Sub
Цитата:
Что только не делал, не помогает
Попробуй убрать раскраску ячеек
EducatedFool вне форума
Старый 24.11.2008, 00:36   #3
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
Я не сказал бы, что заметно дёргается... даже если обновление экрана включено...
Не помогло.
Вот я заметил, что 2-ядерном, все дергается, а перехожу на офисный, старье, приходится раскомментировать .ScreenUpdating = False, завтра в офисе, попробую.

Видимо скорость обработки процессора > быстрее, чем обновление экрана.
valerij вне форума
Старый 25.11.2008, 08:55   #4
vladtr
Форумчанин
 
Регистрация: 28.07.2008
Сообщений: 119
По умолчанию

Цитата:
Сообщение от valerij Посмотреть сообщение
При переключении листов, дергает экран.
Что только не делал, не помогает, если отключаю событие, то нет, сумм, ввода данных. ?
Кл. PgUp и PgDn листают дни в Листах.
Так как у вас фактически идет пересчет листа (рабочего диапазона) то можно в параметрах установить вычисления вручную.
дергаться будет меньше. Вся проблема не в быстродействии оборудования, а в коде.

Последний раз редактировалось vladtr; 25.11.2008 в 09:05.
vladtr вне форума
Старый 25.11.2008, 11:32   #5
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от vladtr Посмотреть сообщение
Вся проблема не в быстродействии оборудования, а в коде.
Если бы в коде, то смена ПК, не влияло бы... пост #3.
valerij вне форума
Старый 25.11.2008, 11:36   #6
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Если бы в коде, то смена ПК, не влияло бы...
Цитата:
Видимо скорость обработки процессора > быстрее, чем обновление экрана
Да, скорость обработки процессора немного выше, чем скорость обновления экрана. Всего-то в несколько миллионов раз...

Цитата:
приходится раскомментировать .ScreenUpdating = False
А зачем её вообще надо было закомментировать?
EducatedFool вне форума
Старый 25.11.2008, 11:55   #7
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
А зачем её вообще надо было закомментировать?
Иначе при вводе данных постоянно дергается.
valerij вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При переключении между чекбоксами - ошибка Stack overflow. Как исправить эту ошибку? SkAndrew Общие вопросы Delphi 5 26.08.2008 21:32
Вывод сообщения на экран при выборе из списка определенного значения MaGistR Microsoft Office Excel 1 31.01.2008 09:10
Почему моргает экран при развороте спрайта V-int Мультимедиа в Delphi 2 03.11.2007 14:47