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

Вход

Регистрация

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

 

= Мир MS Excel/Замедление работы макроса - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Замедление работы макроса
Inkubus Дата: Четверг, 08.12.2022, 11:46 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 1 ±
Замечаний: 20% ±

У меня не сложный макрос. Я на выделяю необходимые точки одного ряда на диаграмме и скидываю их значение в ячейки.
Вопрос в том, что когда у меня открыта только эта книга с макросом, то макрос работает быстро.
Но если параллельно открыта еще какая-нибудь книга, то макрос работает намного медленнее (очень медленно выделяется выбранная точка на диаграмме и скидывается в ячейки).
В чем тут дело? Почему другая книга уменьшает скорость макроса в другой книге ? Заранее спасибо.

[vba]
Код
Private Sub Ch_MouseDown(ByVal Button As Long, ByVal Shift As Long, ByVal X As Long, ByVal Y As Long)
Dim i As Long

If Button = 1 And Shift = 0 Then

ch.GetChartElement X, Y, iElementID, iSeriesIndex, iPointIndex

If iElementID = 3 And iSeriesIndex = 1 Then
i = 0
1 If ActiveWorkbook.ActiveSheet.Cells(i + 2, 3) <> "" Then

i = i + 1
GoTo 1
End If

ActiveWorkbook.ActiveSheet.Cells(i + 2, 3) = ActiveWorkbook.ActiveSheet.Cells(iPointIndex + 1, 1)
ActiveWorkbook.ActiveSheet.Cells(i + 2, 4) = ActiveWorkbook.ActiveSheet.Cells(iPointIndex + 1, 2)
End If
End If

End Sub
[/vba]
 
Ответить
СообщениеУ меня не сложный макрос. Я на выделяю необходимые точки одного ряда на диаграмме и скидываю их значение в ячейки.
Вопрос в том, что когда у меня открыта только эта книга с макросом, то макрос работает быстро.
Но если параллельно открыта еще какая-нибудь книга, то макрос работает намного медленнее (очень медленно выделяется выбранная точка на диаграмме и скидывается в ячейки).
В чем тут дело? Почему другая книга уменьшает скорость макроса в другой книге ? Заранее спасибо.

[vba]
Код
Private Sub Ch_MouseDown(ByVal Button As Long, ByVal Shift As Long, ByVal X As Long, ByVal Y As Long)
Dim i As Long

If Button = 1 And Shift = 0 Then

ch.GetChartElement X, Y, iElementID, iSeriesIndex, iPointIndex

If iElementID = 3 And iSeriesIndex = 1 Then
i = 0
1 If ActiveWorkbook.ActiveSheet.Cells(i + 2, 3) <> "" Then

i = i + 1
GoTo 1
End If

ActiveWorkbook.ActiveSheet.Cells(i + 2, 3) = ActiveWorkbook.ActiveSheet.Cells(iPointIndex + 1, 1)
ActiveWorkbook.ActiveSheet.Cells(i + 2, 4) = ActiveWorkbook.ActiveSheet.Cells(iPointIndex + 1, 2)
End If
End If

End Sub
[/vba]

Автор - Inkubus
Дата добавления - 08.12.2022 в 11:46
_Boroda_ Дата: Четверг, 08.12.2022, 12:21 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16714
Репутация: 6503 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Дык у Вас же там класс прописан? А что в нем - никто, кроме Вас, не знает
Ну попробуйте убирать обновление экрана, пересчет и события. А потом обратно ставить
[vba]
Код
Application.ScreenUpdating
Application.Calculation
Application.EnableEvents
[/vba]
Нахождение первой пустой тоже как-то с листа всё берется, но это не так уж сильно тормозить должно.

И да, код нужно в специальные теги засовывать. Кнопка # на панели выше
Сейчас поправил, потом сами уже делайте


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеДык у Вас же там класс прописан? А что в нем - никто, кроме Вас, не знает
Ну попробуйте убирать обновление экрана, пересчет и события. А потом обратно ставить
[vba]
Код
Application.ScreenUpdating
Application.Calculation
Application.EnableEvents
[/vba]
Нахождение первой пустой тоже как-то с листа всё берется, но это не так уж сильно тормозить должно.

И да, код нужно в специальные теги засовывать. Кнопка # на панели выше
Сейчас поправил, потом сами уже делайте

Автор - _Boroda_
Дата добавления - 08.12.2022 в 12:21
Inkubus Дата: Четверг, 08.12.2022, 13:13 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 1 ±
Замечаний: 20% ±

но это не так уж сильно тормозить должно

У меня и не тормозит, когда только эта книга открыта. Тормозит, если только какая нибудь еще книга открыта. Вот это то я и не пойму, почему другая открытая книга (без макросов) влияет на работу макроса в этой книге ? (причем сильно влияет)
 
Ответить
Сообщение
но это не так уж сильно тормозить должно

У меня и не тормозит, когда только эта книга открыта. Тормозит, если только какая нибудь еще книга открыта. Вот это то я и не пойму, почему другая открытая книга (без макросов) влияет на работу макроса в этой книге ? (причем сильно влияет)

Автор - Inkubus
Дата добавления - 08.12.2022 в 13:13
_Boroda_ Дата: Четверг, 08.12.2022, 13:15 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 16714
Репутация: 6503 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Вы выбрали из всего моего поста самый незначительный фактор из трех :D


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

Автор - _Boroda_
Дата добавления - 08.12.2022 в 13:15
bmv98rus Дата: Суббота, 10.12.2022, 17:39 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4115
Репутация: 769 ±
Замечаний: 0% ±

Excel 2013/2016
Тормозит, если только какая-нибудь еще книга открыта.
Любая или все ж конrретная или конкретеные?


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

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

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