Подскажите, как можно ускорить выполнение кода - VBA

Узнай цену своей работы

Формулировка задачи:

Пожалуйста, подскажите решение, как можно оптимизировать выполнение этих циклов по времени. Код работает правильно, но ОЧЕНЬ медленно (порядка 8 часов). Заранее спасибо!
Листинг программы
  1. For a = -2.1 To 2.1 Step 0.35
  2. For b = -2.1 To 2.1 Step 0.35
  3. For c = -2.1 To 2.1 Step 0.35
  4. For d = -2.1 To 2.1 Step 0.35
  5. For e = -2.1 To 2.1 Step 0.35
  6. Var = Var + 1
  7. For LOOP_CASE = 1 To 177
  8. Matrix(LOOP_CASE, 1+Var*5-5) = Round(3*(ADS.Value(LOOP_CASE, 73)+c)+2*(ADS.Value(LOOP_CASE, 72)+b)-(ADS.Value(LOOP_CASE, 74)+d)-3*(ADS.Value(LOOP_CASE, 71)+a)-3*(ADS.Value(LOOP_CASE, 75)+e),0)
  9. Matrix(LOOP_CASE, 2+Var*5-5) = Round(2*(ADS.Value(LOOP_CASE, 71)+a) + 0.2*(ADS.Value(LOOP_CASE, 74)+d) - (ADS.Value(LOOP_CASE, 72)+b) - (ADS.Value(LOOP_CASE, 73)+c) - (ADS.Value(LOOP_CASE, 75)+e),0)
  10. Matrix(LOOP_CASE, 3+Var*5-5) = Round(2*(ADS.Value(LOOP_CASE, 75)+e) + 2*(ADS.Value(LOOP_CASE, 71)+a) + (ADS.Value(LOOP_CASE, 74)+d) - 0.1*(ADS.Value(LOOP_CASE, 72)+b) - 2*(ADS.Value(LOOP_CASE, 73)+c),0)
  11. Matrix(LOOP_CASE, 4+Var*5-5) = Round((ADS.Value(LOOP_CASE, 73)+c) + (ADS.Value(LOOP_CASE, 75)+e) + 0.1*(ADS.Value(LOOP_CASE, 72)+b) - 0.5*(ADS.Value(LOOP_CASE, 74)+d) - (ADS.Value(LOOP_CASE, 71)+a),0)
  12. Matrix(LOOP_CASE, 5+Var*5-5) = Round(3*(ADS.Value(LOOP_CASE, 73)+c) + 1.2*(ADS.Value(LOOP_CASE, 74)+d) - 0.2*(ADS.Value(LOOP_CASE, 72)+b) - 2*(ADS.Value(LOOP_CASE, 71)+a) - 3*(ADS.Value(LOOP_CASE, 75)+e),0)
  13. Next LOOP_CASE
  14. Next e
  15. Next d
  16. Next c
  17. Next b
  18. Next a
  19. '--------------------Frequency analysis and putting results into the spreadsheet------------------
  20. For b = -25 To 60
  21. v = v+1
  22. For LOOP_CASE = 1 To 177
  23. For LOOP_VAR = 1 To 13^5*5
  24. If Matrix (LOOP_CASE, LOOP_VAR) = b Then k=k+1
  25. Next LOOP_VAR
  26. Spreadsheet.Value (LOOP_CASE, v) = k
  27. k=0
  28. Next LOOP_CASE
  29. Next b
  30. v=0

Решение задачи: «Подскажите, как можно ускорить выполнение кода»

textual
Листинг программы
  1. Spreadsheet.Value (LOOP_CASE, v) = k

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы