Excel 用户定义类型未定义错误

Excel 用户定义类型未定义错误,excel,vba,Excel,Vba,嗨,我是VBA Excel编程的新手。我一直收到一个“用户定义类型未定义”错误。我到处找,找不到我具体问题的答案。很多解决方案都需要添加参考资料,这似乎不适用于我的情况。计算正确返回,但错误消息让我抓狂!最后的宏调用也没有发生 Function MinutesOver(duration, start_time, end_time) If Not (duration = "") Then If ((duration * 60) > 600) Or (((

嗨,我是VBA Excel编程的新手。我一直收到一个“用户定义类型未定义”错误。我到处找,找不到我具体问题的答案。很多解决方案都需要添加参考资料,这似乎不适用于我的情况。计算正确返回,但错误消息让我抓狂!最后的宏调用也没有发生

    Function MinutesOver(duration, start_time, end_time)

      If Not (duration = "") Then
        If ((duration * 60) > 600) Or (((duration * 60) + (start_time * 24 * 60)) >    (TimeValue("17:00:00") * 24 * 60)) Then
          MinutesOver = (duration * 60) - ((end_time - start_time) * 24 * 60)
        Else
          MinutesOver = ""
        End If
      Else
        MinutesOver = ""
      End If

      Call AddRowDeleteConstants

    End Function
我甚至试着做一个更简单的版本,但我仍然得到同样的错误

    Function MinutesOver(duration As Integer)
      MinutesOver = duration
     'Call AddRowDeleteConstants
    End Function
如有任何反馈,将不胜感激。谢谢

    Sub AddRowDeleteConstants() 
      'On Error GoTo NoConstants 
      With ActiveCell.EntireRow
        .Copy 
        .Insert Shift:=xlDown 
        .SpecialCells(xlCellTypeConstants).ClearContents 
      End With 
    Exit Sub 

     'NoConstants: 
     'MsgBox "There were no constants to delete"
    End Sub 

我没有发现你的代码有任何错误,但也许你需要给你的函数一个类型

Function MinutesOver(duration As Integer) as Integer

只是一个猜测…

我希望运行您的函数时没有错误,但是


用户定义的函数不能修改其他单元格。在调用
AddRowDeleteConstants
时,无论是否出错,命令
Copy
Insert
PasteSpecial
都不会执行任何操作,因为它们实际上是从用户定义的函数调用的。

什么是AddRowDeleteConstants?错误在哪一行?(如果你说不出来,在函数分钟结束时按f9(…行设置断点,运行调用,在中断时按F8运行下一行)我用F8一路走完它,直到它完成(在它到达结束函数行之后)错误才发生。AddRowDeleteConstants看起来是这样的:这似乎也不起作用,仍然会得到相同的错误。:(这是“猜测”是完全不相关的,一点用处都没有…-1谢谢,关于这方面的信息。我本可以容忍这个错误,但由于不可能从用户定义的函数修改其他单元格,我将不得不提出不同的计划。