我对 VBA 很陌生。如果我的问题很简单,我很抱歉。我有个问题。当我运行以下代码时,我收到以下错误消息:
编译器错误:检测到不明确的名称:faren
谁能解释我的代码的哪一部分是错误的?
Option Explicit
Dim n As Double
Private faren As Integer
Dim result As Double
Function faren(n)
faren = (9 / 5) * (n + 32)
End Function
Function c(n)
Dim c As Long
c = (5 / 9) * (n - 32)
End Function
Sub test()
result = faren(32)
MsgBox "the degree in farenheit is " & result & "Farenheit."
End Sub
最佳答案
你两次申报faren。第一个 Private faren As Integer
第二个 Function faren(n)
为避免名称不明确,您可以删除 Private faren As Integer
并像这样修改函数行:Function faren(n) As Integer
编辑:我不知道您是否有意将 faren 声明为 Integer
而不是 Double
,但我希望您看到以下结果来比较差异:
当Function faren(n) As Integer
使用 n = 32 --> result = 115
当Function faren(n) As Double
使用 n = 32 --> result = 115.2
您可能需要考虑声明 c as double
以同样的方式,因为它也会影响结果。
关于VBA 错误 : Ambiguous Name Detected (Excel 2010),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45398193/