Я должен заполнять массив сохраненных данных60 из динамической ячейки А1 листа6 каждые тридцать секунд. Этот массив будет обнуляться через каждые 30 минут. Окно сообщения выдаст сообщение, если разница максимума и минимума больше 7. У меня есть 4 саба для этого действия. Я получаю подписку ошибки времени выполнения 9 вне диапазона. Это показывает ошибку в первой строке my_procedure. Ниже код:
Public RunWhen As Double
Public Const cRunWhat = "my_Procedure"
Dim I As Integer, n50max As Double, n50min As Double, Max_Min As Double, storedata60() As Double
Option Explicit
Sub StartTimer()
RunWhen = Now + TimeSerial(0, 0, 30)
Application.OnTime earliesttime:=RunWhen, procedure:=cRunWhat, _
schedule:=True
End Sub
Sub StopTimer()
On Error Resume Next
Application.OnTime earliesttime:=RunWhen, _
procedure:=cRunWhat, schedule:=False
End Sub
Sub my_Procedure()
storedata60(I) = ThisWorkbook.Sheets("Sheet6").Range("A1").Value
n50max = Application.WorksheetFunction.Max(storedata60)
n50min = Application.WorksheetFunction.Min(storedata60)
Max_Min = n50max - n50min
If Max_Min >= 7 Then MsgBox Max_Min
I = I + 1
ReDim storedata60(I)
If I = 60 Then Call reset_zero
If I <> 60 Then Call StartTimer
End Sub
Sub reset_zero()
I = 0
Call StartTimer
End Sub