ByRef参数类型不匹配,我错过了什么?

时间:2014-09-19 15:12:43

标签: vba

我有这个功能:

Function hqt_dsr_Line_list(ByRef segments() As hqt_dsr_Segment) As Integer
    ...
    Dim merged As hqt_dsr_Segment
    Call hqt_dsr_Line_merge(segments(0), segments(1), merged)
    ...
End Function

而且:

Sub hqt_dsr_Line_merge( _
    ByRef seg1 As hqt_dsr_Segment, _
    ByRef seg2 As hqt_dsr_Segment, _
    ByRef merged As hqt_dsr_Segment)

    ...

End Sub

我不断得到ByRef参数类型不匹配。为什么?在我看来,所有类型都是一致的。

编辑:更确切地说,这是赛普拉斯启用(www.cypressinc.com),这是一个VBA引擎。

edit2:问题是

Call hqt_dsr_Line_merge(segments(0), segments(1), merged)
Sub似乎认为类型不同。另外,hqt_dsr_Segment是一个类型,而不是类。

edit3:选项explicit是打开的,3 ByRefs的原因是否则我得到错误"用户定义的类型可能不会被传递ByVal"

最终编辑:我选择复制/粘贴一些代码以节省时间并在代码中注明它的原因。我尝试了很多东西,但最后我认为赛普拉斯启用可能会搞砸了。这个VBA引擎有一个奇怪的行为并不常见,我没有时间找到解决方案(或找出解决方案是否存在)。尽管如此,谢谢大家。

0 个答案:

没有答案