В Excel VBA функция энергозависимого смещения очень медленная. Какая альтернатива? - PullRequest
0 голосов
/ 17 сентября 2010

У меня проблема с производительностью в макросе Excel.Один конкретный фрагмент кода работает очень медленно.Я думаю, что причина в Offset функции.В Интернете я обнаружил, что это изменчивая функция, которая много пересчитывает.
Странно то, что я использую ее как VBA-функцию, поэтому я не могу понять, как это повлияет на производительность, поскольку она никогда необходимо пересчитать .

Вот как я использую функцию смещения:

For i=0 To 10
 For P=0 To 3
  For T=0 To 3
    Range("C9").Offset(6 * i + T, P).Value = effect(i,P,T)
  Next
 Next
Next

Существует ли более быстрая (энергонезависимая?) альтернатива?

1 Ответ

7 голосов
/ 17 сентября 2010

Вы пробовали Cells(row,column).Value = ...

Очевидно, вам нужно настроить row и column, чтобы учесть вашу начальную позицию C9 (9,3)

Также вы уверены, что функция effect() не является узким местом?

UPDATE:

Также вы пробовали

Application.Calculation = xlCalculationManual
    ....Your Code....
Application.Calculation = xlCalculationAutomatic
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...