Excel/VBA 基本函数问题

标签 excel vba

我知道这完全是一个菜鸟问题,但谁能告诉我为什么这个函数总是返回 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

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

最佳答案

Case Re < 1

这是不好的。您评价Re在您的 Select Case首先,现在您正在比较 ReRe < 1 .显然,你想要
Case Is < 1
Case 1 < Re < 1000 

那也不好。没有< X < VB中的运算符。此表达式的计算结果为 (1 < (Re < 1000)) , 这基本上变成了 1 < False1 < True ,始终为 False .你想在这里写的是:
Case 1 to 1000
Case 1000 < Re

又是同样的问题。你显然的意思是:
Case Is > 1000

关于Excel/VBA 基本函数问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3992045/

相关文章:

javascript - 使用 XML 将带有 < 的 HTML 表导出到 Excel

mysql - 使用 VBA 执行在文本框中编写的 SQL

python - 使用 pandas 和 XlsxWriter 写入现有的 .xlsm

用于循环浏览从特定工作表(索引 3)开始的工作表的 VBA 代码

vba - Excel VBA-时间延迟 : How to use Time Delay after running macro

excel - 在上面添加一个新行,同时为新行的第一个和最后一个单元格添加后缀

excel - 运行时错误 '7' : Out of memory

vba - 如何动态更改公式内的范围?

c# - 无法使用 UAC 从 Excel 在 Hkey_Local_Machine 中创建注册表项

VBA检查文件(来自网站)是否存在