根据我书中的一个陈述,它正在计算我选择作为 Select Case letter 的 PV=NRT 值。
Public Function ATHING(SolveFor As String, v1 As Single, v2 As Single, v3 As Single, v4 As Single) As Variant
Dim p As Single
Dim v As Single
Dim n As Single
Dim R As Single
Dim t As Single
Select Case SolveFor
Case "P"
n = v1
R = v2
t = v3
v = v4
ATHING = n * R * t / v
Case "V"
n = v1
R = v2
t = v3
p = v4
ATHING = n * R * t / p
Case "N"
p = v1
v = v2
R = v3
t = v4
ATHING= p * v / (R * t)
Case "R"
p = v1
v = v2
n = v3
t = v4
ATHING = p * v / (n * t)
Case "T"
p = v1
v = v2
n = v3
R = v4
ATHING = p * v / (n * R)
Case Else
ATHING = "CAN'T FIND VARIALBE TO SOLVE FOR, DO IT AGAIN"
End Select
End Function
如果我在 Select Case 的位置放置一个数字,它会返回 Else Case。但是如果我在里面放一个 Case 的信,它会返回 #VALUE!错误,这意味着我在某处输入了不正确的内容。
该函数位于模块内,因此这不应该是问题。
有什么明显的吗?
最佳答案
解决方案,用数字替换大小写“”的字母。 Excel 不喜欢在其函数中包含字母和数字,不知道为什么。我使用 0-4 来表示 PV=NRT,因为它们出现在等式中。
Public Function ATHING(SolveFor As String, v1 As Single, v2 As Single, v3 As Single, v4 As Single) As Variant
Dim p As Single
Dim v As Single
Dim n As Single
Dim R As Single
Dim t As Single
Select Case SolveFor
Case "0"
n = v1
R = v2
t = v3
v = v4
ATHING = n * R * t / v
Case "1"
n = v1
R = v2
t = v3
p = v4
ATHING = n * R * t / p
Case "2"
p = v1
v = v2
R = v3
t = v4
ATHING= p * v / (R * t)
Case "3"
p = v1
v = v2
n = v3
t = v4
ATHING = p * v / (n * t)
Case "4"
p = v1
v = v2
n = v3
R = v4
ATHING = p * v / (n * R)
Case Else
ATHING = "CAN'T FIND VARIABLE TO SOLVE FOR, DO IT AGAIN"
End Select
End Function
关于excel - 使用 Select Case 语句的公共(public)函数会输出 #VALUE!错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29177935/