Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница:

 

  Вопрос: Нужна помощь по доработке макроса. Добавлено: 20.11.08 16:59  

Автор вопроса:  Alexey | ICQ: 148854696 
прошу сразу не бить ногами. И не зафлуживать тему.
Есть реальная проблема, которую нужно решить.

Function track(y, z, q, s)

If s = 1 And y > 1 And y < 29 And z > 1 And z < 29 Then
track = 1.5
End If
If q > 2.5 Then
track = 2.5
End If
If q < 2.5 Then
track = 1.5
End If

If s > 1 And y > 1 And y < 21 And z > 1 And z < 21 Then
track = 1.5
End If
If q > 2.5 Then
track = 2.5
End If
If q < 2.5 Then
track = 1.5
End If



If s = 1 And y > 29 And y < 40 And z > 29 And z < 40 Then
track = 2.5
End If
If q > 2.5 Then
track = 4
End If
If q < 2.5 Then
track = 2.5
End If

If s > 1 And y > 21 And y < 33 And z > 21 And z < 33 Then
track = 2.5
End If
If q > 2.5 Then
track = 4
End If
If q < 2.5 Then
track = 2.5
End If


If s = 1 And y > 40 And y < 53 And z > 40 And z < 53 Then
track = 4
End If
If q > 2.5 Then
track = 6
End If
If q < 2.5 Then
track = 4
End If

If s > 1 And y > 33 And y < 44 And z > 33 And z < 44 Then
track = 4
End If
If q > 2.5 Then
track = 6
End If
If q < 2.5 Then
track = 4
End If


If s = 1 And y > 53 And y < 67 And z > 53 And z < 67 Then
track = 6
End If
If q > 2.5 Then
track = 10
End If
If q < 2.5 Then
track = 6
End If

If s > 1 And y > 44 And y < 56 And z > 44 And z < 56 Then
track = 6
End If
If q > 2.5 Then
track = 10
End If
If q < 2.5 Then
track = 6
End If


If s = 1 And y > 67 And y < 91 And z > 67 And z < 91 Then
track = 10
End If
If q > 2.5 Then
track = 16
End If
If q < 2.5 Then
track = 10
End If

If s > 1 And y > 56 And y < 76 And z > 10 And z < 76 Then
track = 10
End If
If q > 2.5 Then
track = 16
End If
If q < 2.5 Then
track = 10
End If


If s = 1 And y > 91 And y < 121 And z > 91 And z < 121 Then
track = 16
End If
If q > 2.5 Then
track = 25
End If
If q < 2.5 Then
track = 16
End If

If s > 1 And y > 76 And y < 87 And z > 76 And z < 87 Then
track = 16
End If
If q > 2.5 Then
track = 25
End If
If q < 2.5 Then
track = 16
End If


If s = 1 And y > 121 And y < 160 And z > 121 And z < 160 Then
track = 25
End If
If q > 2.5 Then
track = 35
End If
If q < 2.5 Then
track = 25
End If

If s > 1 And y > 87 And y < 115 And z > 87 And z < 115 Then
track = 25
End If
If q > 2.5 Then
track = 35
End If
If q < 2.5 Then
track = 25
End If

End Function


Вот макрос, который работает, но проблема в том, что при соблюдении всех условий в ячейках y, z, q, s он продолжает работать до последнего значения. В данном случае это 25.
Как это исправмть? по идее, должно быть так, что если

If s = 1 And y > 1 And y < 29 And z > 1 And z < 29 Then
track = 1.5
End If
If q > 2.5 Then
track = 2.5
End If
If q < 2.5 Then
track = 1.5
End If

все условия соблюдаются из первой строки, то и значение должно вернуться 1.5
Кто нить, помогите разобраться. Может есть идеи как исправить этот макрос и сделаю его более компактным, но при этом код оставить открытым, что бы можно было вносить дополнения.

Ответить

  Ответы Всего ответов: 0  

Нет ответов

Страница:

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам