#excel #vba
#excel #vba
Вопрос:
Нужна помощь с этой функцией макроса в Excel для прямой трансляции цен на акции
От T11 до T32 цены потоковые, значение меняется каждую секунду От U11 до U32 будут иметь значения, передаваемые пользователем, от V11 до V32 разница в ценах потоковой передачи и значении, передаваемом пользователем = (U15-T15) Теперь начинается неприятная часть…
От X11 до X32 имеет общий расчет
Если значения больше -1999, у меня есть эта функция ниже, но каждый раз, когда она превышает 2000, она продолжает подавать звуковой сигнал на 2100, 2200, тем самым увеличивая счетчик, я хочу, чтобы это прекратилось, если значения не упадут ниже -1999, а затем снова вернутся к -2000, должен быть звуковой сигнал, и счетчик должен увеличиться на 2
То же самое касается значений, превышающих -2500 и -3500
Ниже приведена функция
Private BlnAboveHundred As Boolean
Private IntCounter As Integer
Private IntCounter2 As Integer
Private IntCounter3 As Integer
Function StopCounterAF2(RngMeasure As Range)
If RngMeasure.Value < (-1999) Then
If BlnAboveHundred = False Then
IntCounter = IntCounter 1
Call PlaySound("c:windowsmediaStop1Filled.wav", _
0, SND_ASYNC Or SND_FILENAME)
BlnAboveHundred = True
Else
BlnAboveHundred = True
End If
Else
BlnAboveHundred = False
End If
StopCounterAF2 = IntCounter
IntCounter = 0
End Function
Function StopCounterAG2(RngMeasure As Range)
If RngMeasure.Value < (-2499) Then
If BlnAboveHundred = False Then
IntCounter2 = IntCounter2 1
Call PlaySound("c:windowsmediaStop2Filled.wav", _
0, SND_ASYNC Or SND_FILENAME)
BlnAboveHundred = True
Else
BlnAboveHundred = True
'IntCounter = 0
End If
Else
BlnAboveHundred = False
End If
StopCounterAG2 = IntCounter2
End Function
Function StopCounterAH2(RngMeasure As Range)
If RngMeasure.Value < (-2999) Then
If BlnAboveHundred = False Then
IntCounter3 = IntCounter3 1
Call PlaySound("c:windowsmediaStop3Filled.wav", _
0, SND_ASYNC Or SND_FILENAME)
BlnAboveHundred = True
Else
BlnAboveHundred = True
'IntCounter = 0
End If
Else
BlnAboveHundred = False
End If
StopCounterAH2 = IntCounter3
End Function
Комментарии:
1. Этот код в некоторой степени работает хорошо, если не заполнены нижеприведенные ячейки. как только значения в ячейке ниже, например, для X11 имеют значение -2000, а для X13 — значения -1450, ячейка счетчика AF11 увеличится на 1, но ячейка AF13 также увеличит счетчик на 1, этого не должно произойти, поскольку его значение не увеличилосьна -2000
2. В чем ваш вопрос? Вы отладили свой код? Вы застряли с проблемой VBA или с вашим алгоритмом?
3. Я считаю, что с помощью VBA проблема, с которой я сталкиваюсь, похожа на то, что я упоминал в комментариях выше, как только значения в ячейке, например, для X11 имеют значение -2000, а для X13 — значения -1450, ячейка счетчика AF11 увеличится на 1, но ячейка AF13 также увеличивает счетчик на 1, чего не должно произойти, поскольку его значениене увеличились на -2000