Страница 1 из 1

Добавлено: 02 апр 2004, 08:56
Naeel Maqsudov
К сожалению полностью высвободить ресурсы "в промежутках" не удастся.
Самый простой способ позволить нормально функционировать Excel-ю
во время работы макроса - это использование DoEvents()

Код: Выделить всё

Sub sss0()
  Do
    For j = 1 To 100000
      DoEvents
    Next
    Me.Calculate
  Loop
End Sub

Me.Calculate - это для вызова из модуля листа. Если вызов производится из обычного модуля, то вместо Me надо использовать обращение к конкретному листу


Честно говоря, мне очень трудно себе представить когда, может понадобиться то, что Вы хотите.

Если уж выполнять пересчет, то не через равные промежутки, а только в моменты, когда пересчет может быть действительно актуален. Например, после каждого десятого изменения на листе, или только при изменении ячейки... В5, например... Ну или что-то в этом роде.