Добавлено: 02 апр 2004, 08:56
К сожалению полностью высвободить ресурсы "в промежутках" не удастся.
Самый простой способ позволить нормально функционировать Excel-ю
во время работы макроса - это использование DoEvents()
Me.Calculate - это для вызова из модуля листа. Если вызов производится из обычного модуля, то вместо Me надо использовать обращение к конкретному листу
Честно говоря, мне очень трудно себе представить когда, может понадобиться то, что Вы хотите.
Если уж выполнять пересчет, то не через равные промежутки, а только в моменты, когда пересчет может быть действительно актуален. Например, после каждого десятого изменения на листе, или только при изменении ячейки... В5, например... Ну или что-то в этом роде.
Самый простой способ позволить нормально функционировать Excel-ю
во время работы макроса - это использование DoEvents()
Код: Выделить всё
Sub sss0()
Do
For j = 1 To 100000
DoEvents
Next
Me.Calculate
Loop
End Sub
Честно говоря, мне очень трудно себе представить когда, может понадобиться то, что Вы хотите.
Если уж выполнять пересчет, то не через равные промежутки, а только в моменты, когда пересчет может быть действительно актуален. Например, после каждого десятого изменения на листе, или только при изменении ячейки... В5, например... Ну или что-то в этом роде.