Как мне справиться со следующей задачей?В ячейке A2 у меня есть формула, которая повторяет и предоставляет результаты на постоянной основе.С каждой итерацией результаты отображаются в B2, B3 и т. Д.
В то же время в C2, C3 и т. Д. Я фиксирую соответствующие временные метки.По сути, после нескольких итераций у меня есть список результатов в столбце B и список временных меток в столбце C. Мне удалось закодировать эту часть.
Теперь к моей проблеме: поскольку у меня есть временные метки, я буду знатьв один момент, например, в течение 1-й минуты генерируется 6 результатов.Поэтому диапазон результатов, которые мы рассматриваем, составляет B2: B7.
Исходя из этого расширяющегося диапазона, мне нужно зафиксировать максимальный результат в E2, поскольку диапазон изменяется с каждой итерацией, пока не достигнет B7.Поскольку я не знаю, сколько результатов будет сгенерировано в течение 1-й минуты, мне нужно обновлять E2 с каждой итерацией.Как только начинается вторая минута, я хочу сделать то же самое и зафиксировать максимальный результат в E3.Новый диапазон, очевидно, начнется в B8 и расширится в зависимости от того, сколько вычислений сделано в A2.
Если бы я мог сделать это в течение 10 минут, я бы показал 10 максимальных результатов в диапазоне от E2 до E11.
Ниже мой код.Только частично он выполняет то, что я описал выше.Есть идеи, как заставить это работать?Ваша помощь высоко ценится!Спасибо!
По следующей ссылке я визуализировал проблему:
Private Sub Worksheet_Calculate()
Dim lastrow As Long
lastrow = Worksheets(1).Cells(Rows.Count, 2).End(xlUp).Row
With Worksheets(1).Cells(lastrow, 2)
.Offset(1, 0) = Cells(2, 1).Value
.Offset(1, 1) = FormatDateTime(Now, vbLongTime)
End With
Call Generator
End Sub
Sub Generator()
Dim icount As Long
Dim rcount As Long
icount = 2
rcount = 2
For tcount = 1 To 10
Do While DateDiff("s", Cells(2, 3), Cells(icount, 3)) <= tcount * 60
Cells(tcount + 1, 5) = WorksheetFunction.Max(Range(Cells(rcount, 2), Cells(icount, 2)))
icount = icount + 1
Loop
rcount = icount
Next tcount
End Sub