我定义了一个返回集合的函数如下:
public function getCollection() as collection
    Dim A As New Collection
    A.add 1
    A.add 2
    A.add 3
    A.add 4
    set getCollection=A
end function
不知到这样定义有没错误我这样调用的时候 call getCollection 没有错误
但我想取得返回值的时候。
Msgbox getCollection.count 出错了,
假如函数定义没错的话,那我在其他地方调用该函数该怎样取返回值呢? 

解决方案 »

  1.   


        Dim B As Collection
        Set B = getCollenction
        MsgBox B.Count
      

  2.   

    另外,我试了你0楼的用法,没错啊?你报什么错?还有,你的getCollection和Msgbox getCollection.count 分别都是在什么模块里?
      

  3.   


    public function getCollection() as collection 
        Dim A As New Collection 
    end function局部变量处于堆栈,不要当全局变量用啊。
    即使你这样引用对象成功了,等到回头释放的时候还是个难题。
      

  4.   

    我测试过了,可以,没有问题:Option ExplicitPublic Function getCollection() As Collection
        Dim A As New Collection
        A.Add 1
        A.Add 2
        A.Add 3
        A.Add 4
        Set getCollection = A
    End FunctionPrivate Sub Command1_Click()
            MsgBox getCollection.Count & " " & getCollection.Item(1) & " " & getCollection.Item(2) & " " & getCollection.Item(3) & " " & getCollection.Item(4)
    End Sub
      

  5.   

    编译错误还是运行错误?
    getCollection 是类的成员还是模块的成员?
      

  6.   

    试了下,没有看到问题。贴代码出来看看吧Private Function getCollection() As Collection
        Dim A As New Collection
        A.Add 1
        A.Add 2
        A.Add 3
        A.Add 4
        Set getCollection = A
    End FunctionPrivate Sub Command1_Click()
        Dim oCollection As Collection
        
        Set oCollection = getCollection()
        MsgBox oCollection.Count & "," & oCollection.Item(1)
        
    End Sub