Excel VBA получить значение ячейки после пересчета - PullRequest
1 голос
/ 04 февраля 2020

У меня есть лист, который вычисляет различные значения на основе случайного значения и хотел бы использовать закон больших чисел, чтобы сходиться к среднему для каждого вычисления.

Я думаю об использовании VBA для выполнения рассчитать 1000 раз и сохранить значения в списке для усреднения в конце. Мой текущий код тестирования сохраняет только исходное значение после каждой итерации. ie Safety1 не изменяется, даже если значение в R36 изменяется.

Dim Safety1(0 To 10) As Long


For i = 0 To 10

    Safety1(i) = Sheet34.Range("R36").Value
    Debug.Print Safety1(i)

Next i

myAverage = Application.WorksheetFunction.Average(Safety1)

myAverage должно быть сходящимся средним значением.

R36 содержит сумму других диапазонов, которые содержат значения, основанные на rand()

Если есть лучший способ сделать это, я с удовольствием выслушаю.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 04 февраля 2020

Пожалуйста, рассчитайте лист следующим образом:

Dim Safety1(0 To 10) As Long

Application.ScreenUpdating = False    

For i = 0 To 10
    Worksheets("Sheet34").Calculate
    Safety1(i) = Sheet34.Range("R36").Value
    Debug.Print Safety1(i)

Next i
Application.ScreenUpdating = True
myAverage = Application.WorksheetFunction.Average(Safety1)
0 голосов
/ 04 февраля 2020

Этот пост решил проблему. Мне нужно было дождаться завершения процесса расчета, прежде чем сохранять значение

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