Я только начал использовать VBA и столкнулся с этой проблемой: я сгенерировал значения для новой переменной, используя цикл for, и мне было интересно, можно ли вычесть предыдущее значение этой переменной из текущего значения этой переменной? Я попытался использовать смещение, но оно не работает (вероятно, потому что смещение можно использовать только для правильных диапазонов). Любая помощь и совет будут оценены! Я также приложил свой код для справки каждого.
Function test(Price As Range)
Dim Pos, Neg, Count, MF_ratio, MF_index, Tar_price, Flow As Long
Dim day As Range
For Each day In Price
Tar_price = (day.Value + day.Offset(0, -1).Value + day.Offset(0, -2).Value) / 3
Flow = Tar_price * day.Offset(0, 2).Value
'This is where the problem starts, I want to compare the previous value stored in the variable 'Flow' with the current value stored in 'Flow'
If Flow.Value > Flow.Offset(-1, 0).Value Then
Pos = Pos + Flow
Next day
test = Pos
End Function
Обновление: введите описание изображения здесь Я пытаюсь подвести итог денежного потока (столбец K) для последних 14 записей, если денежный поток в текущей строке больше, чем в предыдущей строке. Я действительно понятия не имею, что пошло не так с кодом!
Function test(Price As Range)
Dim Pos, Count, Tar_price, Flow, Old_flow As Long
Dim day As Range
Count = 1
For Each day In Price
Tar_price = (day.Value + day.Offset(0, -1).Value + day.Offset(0, -2).Value) / 3
Old_flow = Flow
Flow = Tar_price * day.Offset(0, 2).Value
If Count > 1 Then
If Flow > Old_flow Then
Pos = Pos + Flow
End If
End If
Count = Count + 1
Next day
test = Pos