在VBA中使用AND可以选择案例

时间:2018-05-17 22:04:32

标签: vba excel-vba excel

我正在尝试编写一个简单的函数,如果value为零,则给出band 1 乐队2如果在0到150k之间 乐队3如果在150到500k之间,依此类推

如果值为零,我只得到1,其他一切都是2,即使我输入了1000万

请帮忙

Function Band(ARR)

    Select Case ARR

        Case Is = 0
            Band = 1

        Case Is >= 0.1 And ARR <= 150000
            Band = 2

        Case Is >= 150000.01 And ARR <= 500000
            Band = 3

        Case Is >= 500000.01 And ARR <= 1500000
            Band = 4

        Case Is >= 1500000.01
            Band = 5

        Case Else
            Band = 6

    End Select

End Function

2 个答案:

答案 0 :(得分:4)

VBA Select Case&#39;短路&#39; (一旦满足匹配标准,则不会检查其他案例),因此不需要和运营商。

Function Band(ARR)
    Select Case true
        Case ARR < 0
            Band = 6
        Case arr = 0
            Band = 1
        Case arr <= 150000
            Band = 2
        Case arr <= 500000
            Band = 3
        Case arr <= 1500000
            Band = 4
        Case else
            Band = 5
    End Select
End Function

答案 1 :(得分:4)

您可以使用“收件人”关键字指定范围。 See here for more information.

Function Band(arr)
Select Case arr
  Case 0
    Band = 1
  Case 0.01 To 150000
    Band = 2
  Case 150000.01 To 500000
    Band = 3
  Case 500000.01 To 1500000
    Band = 4
  Case arr >= 1500000.01
    Band = 5
  Case Else
    Band = 6
  End Select
End Function