У меня не сложный макрос. Я на выделяю необходимые точки одного ряда на диаграмме и скидываю их значение в ячейки. Вопрос в том, что когда у меня открыта только эта книга с макросом, то макрос работает быстро. Но если параллельно открыта еще какая-нибудь книга, то макрос работает намного медленнее (очень медленно выделяется выбранная точка на диаграмме и скидывается в ячейки). В чем тут дело? Почему другая книга уменьшает скорость макроса в другой книге ? Заранее спасибо.
[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
Дык у Вас же там класс прописан? А что в нем - никто, кроме Вас, не знает Ну попробуйте убирать обновление экрана, пересчет и события. А потом обратно ставить [vba]
[/vba] Нахождение первой пустой тоже как-то с листа всё берется, но это не так уж сильно тормозить должно.
И да, код нужно в специальные теги засовывать. Кнопка # на панели выше Сейчас поправил, потом сами уже делайте
Дык у Вас же там класс прописан? А что в нем - никто, кроме Вас, не знает Ну попробуйте убирать обновление экрана, пересчет и события. А потом обратно ставить [vba]
У меня и не тормозит, когда только эта книга открыта. Тормозит, если только какая нибудь еще книга открыта. Вот это то я и не пойму, почему другая открытая книга (без макросов) влияет на работу макроса в этой книге ? (причем сильно влияет)
У меня и не тормозит, когда только эта книга открыта. Тормозит, если только какая нибудь еще книга открыта. Вот это то я и не пойму, почему другая открытая книга (без макросов) влияет на работу макроса в этой книге ? (причем сильно влияет)Inkubus