Excel/VBA基本功能问题

1 excel vba

我知道这是一个总的noob问题,但是有人能告诉我为什么这个函数总是返回0:

Function Cd(Re As Double)

Select Case Re

    Case Re < 1
        Cd = 24 / Re
    Case 1 < Re < 1000
        Cd = 18 * Re ^ (-0.6)
    Case 1000 < Re
        Cd = 0.44

End Select

End Function
Run Code Online (Sandbox Code Playgroud)

每当我在电子表格中调用它时,它总是返回0.例如Cd(5000)= 0,它应该是0.44.在此先感谢您的帮助.

GSe*_*erg 5

Case Re < 1
Run Code Online (Sandbox Code Playgroud)

这是不好的.你评估ReSelect Case摆在首位,而现在你是比较ReRe < 1.显然,你想要

Case Is < 1
Run Code Online (Sandbox Code Playgroud)
Case 1 < Re < 1000 
Run Code Online (Sandbox Code Playgroud)

这也不好.< X <VB中没有运算符.这个表达式的计算结果是(1 < (Re < 1000)),它基本上变为或者,1 < False或者1 < True总是如此False.你在这里写的是:

Case 1 to 1000
Run Code Online (Sandbox Code Playgroud)
Case 1000 < Re
Run Code Online (Sandbox Code Playgroud)

同样的问题.你显然意味着:

Case Is > 1000
Run Code Online (Sandbox Code Playgroud)