Мне нужно было получить значения гребня и корыта волны sin. Но данные имеют шум. Я использовал следующий код. Но, похоже, проблема в одной части кода. Он дает ошибку времени выполнения 91.ошибка времени выполнения 91 vba
Вот код.
Range("B2").Activate
last = Application.CountA(Range("A:A"))
Dim f, g, tp, tm As Double
Dim zpo, zpt, zmo, zmt As Range
f = 0
g = 0
For a = 0 To 2
For k = 0 To last
If ActiveCell.Offset(k, a).Value > 0 Then
If ActiveCell.Offset(k + 1, a).Value < 0 Then
zpo = ActiveCell.Offset(k, a).Address
zmo = ActiveCell.Offset(k + 1, a).Address
tp = f + 1
f = tp
End If
End If
If ActiveCell.Offset(k, a).Value < 0 Then
If ActiveCell.Offset(k + 1, a).Value > 0 Then
zmt = ActiveCell.Offset(k, a).Address
zpt = ActiveCell.Offset(k + 1, a).Address
tm = g + 1
g = tm
End If
End If
If f > 0 Then
If f = g Then
Sheets("extract").Cells((5 * a) + 1, f).Value = WorksheetFunction.max("zpo:zpt")
Sheets("extract").Cells((5 * a) + 2, f).Value = WorksheetFunction.Min("zmo:zmt")
End If
End If
Next
Next
У этого есть проблемы, когда он достигает второго утверждения if.
Это говорит изменяемый объект или блок переменной не установлено
У какого кода линии есть линия? –
, где адрес присваивается zmt строка 19 У этого нет проблем, когда он присваивает значение zpo или zmo. –
Я изменил его на вариант, и он работает, но dunno, почему у него возникла проблема с определением диапазона –