Excel VBA函数给出“Argument not optional”

时间:2013-03-27 23:35:53

标签: excel vba excel-vba

我正在尝试编写一个VBA函数来转换Declination&右上升到十进制值。

我有一个完美的RA功能,但一直在

  

参数不是可选的

错误。

目前的功能是:

Public Function dec2decimal(Deg As Integer, Min2 As Integer, Sec2 As Integer) As Double

    Dim Dec As Double
    Dec = 0
    If Deg >= 0 Then
        Dec = (Deg + Min2 / 60 + Sec2 / 3600)
    Else
        Dec = (Deg - Min2 / 60 - Sec2 / 3600)
    End If

    ra2decimal = Dec
End Function

我在运行它时显然提供了三个论据,但它仍然不满意。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

这对我来说非常好。

请注意修订版,将ra2decimal更改为dec2decimal

Option Explicit
Sub testDec2Decimal()

MsgBox dec2decimal(1, 1, 1)

End Sub

Public Function dec2decimal(Deg As Integer, Min2 As Integer, Sec2 As Integer) As Double

    Dim Dec As Double
    Dec = 0
    If Deg >= 0 Then
        Dec = (Deg + Min2 / 60 + Sec2 / 3600)
    Else
        Dec = (Deg - Min2 / 60 - Sec2 / 3600)
    End If

    dec2decimal = Dec
End Function

答案 1 :(得分:1)

检查以下内容:

  • 你确定,你正在执行你所描述的功能,是否有可能执行另一个命名空间或类中的另一个功能?

  • 你确定你正确传递了参数,它们的类型是否正确,它们的编号是否正确并用逗号分隔?

  • 你确定你没有写错字或通过代表调用该函数(这不是问题,但我们应该知道能够帮助你)。