请问VB对下面的代码为什么会报“向前引用用户自定义类型”?
Public Type department
    name As String        '名称,如门市
    id As String          '唯一标识
End TypePublic dpt As department'得到部门
Public Function Get_Dpt(Optional ByRef dpt As department = dpt)
    dpt.name = "门市"
    dpt.id = "et"
    Get_Dpt = dpt.id '默认返回部门唯一标识ID
End Function谢谢!

解决方案 »

  1.   

    关键错在 = dpt 上,参数的默认值必须是常量
    你换成下面的定义就会报编译错误“Constant expression required”
    Public dpt As long
    Public Function Get_Dpt(Optional ByRef dpt As long = dpt)你的第二的错误是在私有类的 Public 方法中不能用 UDT。应该将 Public 更改为 friend ,UDT 定义到模块中