PUBLIC function ReturnArr1() as string()
PUBLIC function ReturnArr2() as string()()

解决方案 »

  1.   

    PUBLIC function ReturnArr1() as integer()
    data=3
    returnarr1=data '或 returnarr1(0)=data
    end function
    都不行啊!要怎么赋值呢?
      

  2.   

    vb6.0下测试通过:
    Function TEST()
    Dim b(2) As Integer
    b(1) = 2: b(2) = 3
    TEST= b
    End FunctionPrivate Sub Command1_Click()
    MsgBox TEST(1)
    End Sub
      

  3.   

    PUBLIC function ReturnArr1() as variant
      

  4.   

    Private Sub Command1_Click()
        Dim x() As String
        x = Ret
        MsgBox x(0)
        MsgBox x(1)
    End Sub
    Private Function Ret() As String()
        Dim x(2) As String
        x(0) = "11"
        x(1) = "22"
        Ret = x
    End Function
      

  5.   

    to (ferry):在函数里面,我的数组为动态。如
    Private Function Ret() As String()
        Dim x() As String
     
    End Function
    又该怎么实现?
      

  6.   

    没什么问题的!
    Private Sub Command1_Click()
        Dim x() As String
        x = Ret
        MsgBox x(0)
        MsgBox x(1)
    End Sub
    Private Function Ret() As String()
        Dim x() As String
        redim x(2) as string
        x(0) = "11"
        x(1) = "22"
        Ret = x
    End Function
    不是一样的吗?
      

  7.   

    如函数为:
    Private Function Ret(Number as integer) As String
        Dim x() As String
        for i=1 to Number
            Data(i)=Str(i*10)
        next
        X=Data
        Ret = x
    End Function
    总是提示子程序未定义,那data数组怎定义?
      

  8.   

    x要redim后再用:
    redim x(ubound(data))Ret = x这句好像也有问题
      

  9.   

    Private Function Ret(Number as integer) As String()
        Dim x() As String
        redim x(number) as string 
        for i=0 to Number-1
            x(i)=Str(i*10)
        next
        Ret = x
    End Function
      

  10.   

    试试看:Private Sub Command1_Click()
    Dim a(5) As String, List As String
    Dim i As Integer
    Call funReturn(a)
    For i = 0 To 5
        List = List & a(i)
    Next i
    MsgBox List
    End Sub
    Function funReturn(ByRef k() As String)
    Dim i As Integer
    For i = 0 To UBound(k) - 1
        k(i) = i
    Next i
    End Function
      

  11.   

    搞定
    Private Function Ret(ByVal Number As Integer) As String()
        Dim x() As String
        Dim i As Integer
        Dim data() As String
        ReDim data(1 To Number)
        
        For i = 1 To Number
            data(i) = Str(i * 10)
        Next
        x = data
        Ret = x
        
    End Function测试如下
    Private Sub Command1_Click()
    Dim aaa() As String
    aaa = Ret(10)Dim i As Integer
    For i = 1 To 10
    MsgBox aaa(i)
    NextEnd Sub
      

  12.   

    非常感激各位!但还有个问题。怎么去判断函数Ret返回来的是否为空?
      

  13.   

    以我刚才的代码为例,有一个比较笨的方法:
    在执行aaa=ret(10)之后,
    加入代码
    On Error Resume Next
    Err.Clear
    debug.print LBound(aaa)
    if Err.Number>0 then
       MsgBox "返回的数组为空!"
       Err.Clear
    End If
      

  14.   

    Ret是是什么类型的,每种类型都有一个默认值,入integer是0,strint是""
      

  15.   

    可以在把代码
    MsgBox "返回的数组为空!"
    换成任意的处理语句。