Public Property Get Powers(ID As Integer) As POWERSINFO
    With mPowers(ID)
        Powers.ID = .ID
        Powers.Name = .Name
        Powers.Description = .Description
    End With
End Property使用不当.应该把:
Public Type POWERSINFO
    ID As Integer
    Name As String
    Description As String
End Type在 clsPowers.cls 里面声明.

解决方案 »

  1.   

    刚开始的时候我是在clsPowers.cls里进行声明的,但同样是提示错误:在私有对象模块中不能定义public的用户定义类型。
      

  2.   

    Public Property Get Powers(ID As Integer) As POWERSINFO
        With mPowers(ID)
            Powers(id).ID = .ID
            Powers(id).Name = .Name
            Powers(id).Description = .Description
        End With
    End Property
      

  3.   

    基本上应该是Name 不能定义,这个是VB保留的,改为其它名称就可以了。
      

  4.   

    是下面这一句的AS POWERSINFO 出错!而不是该过程内部出错。
    Public Property Get Powers(ID As Integer) As POWERSINFO出错提示:“只有在公共对象模块中定义的公共用户定义类型可以作为参数、类模块的公共过程返回类型、公共用户定义类型的字段使用。”