我在VBA中编写代码,根据一些输入参数将Access数据库中的数据提取到Excel.当谈到If语句时,检查"Speed"变量范围的标准之一是真的,但是,我检查了这个标准应该是错误的.例如,速度= 49,VSP = 1.5,1 <=速度<25,如果条件指示为真,这是荒谬的,而VSP <0表示为假,因此它进入第一个elseif条件,1 <=速度<25仍然表示true和0 <= VSP <3也为true,然后函数返回Access数据库中的值.否则,如果速度= 49,VSP = 6.5,则该功能仍然执行"ElseIf(1 <=速度<25)和(0 <= VSP <3)然后,声明2"部分.它似乎只是始终将第一个elseif条件视为真.
我的if语句出了什么问题?有什么建议?
码:
Function F (ByVal Speed, VSP as single)
.............
If (1 <= Speed < 25) And (VSP < 0) Then
statement 1
ElseIf (1 <= Speed < 25) And (0 <= VSP < 3) Then
statement 2
ElseIf (25<= Speed < 50)) And (0<= VSP <3) Then
statement 3
End if
End function
Run Code Online (Sandbox Code Playgroud)