dim ret as byte(4)
ret=ReturnArr(1200)Private Function ReturnArr(ByVal param As Single)  as Variant 
Dim num(4) As Byte
num(0) = param/3
num(1) = param/4
num(2) = param/5
num(3) = param/6
ReturnAbsStatus=num
...
ReturnArr=?End Function

解决方案 »

  1.   

    ReturnAbsStatus 是在哪里定义的?重新定义一下
    dim ReturnAbsStatus() as ...
    redim ReturnAbsStatus(n) as ...
    然后再赋值就行了。
      

  2.   

    1200/3=400 超出255了(byte 最大255)
    你的param最大为255*3=765 另外你有多处错误
    改正如下
    Private Sub Command1_Click()
        Dim ret() As Byte
        ret = ReturnArr(200)
    End SubPrivate Function ReturnArr(ByVal param As Single) As Byte() 'Variant 也可以
        Dim num(3) As Byte
        num(0) = param / 3
        num(1) = param / 4
        num(2) = param / 5
        num(3) = param / 6
        ReturnArr = num
    End Function
      

  3.   

    贴错了,定义函数返回类型不能用 as byte()语法,vb5中提示出错!
    正确的代码:
    Private Sub cmdOk_Click()
        Dim ret(4) As Byte
        ret = ReturnArr(200)
    End SubPrivate Function ReturnArr(ByVal param As Single) As Variant
        Dim num(3) As Byte
        num(0) = param / 3
        num(1) = param / 4
        num(2) = param / 5
        num(3) = param / 6
        ReturnArr = num
    End Function
      

  4.   

    Private Function ReturnArr(ByVal param As Single) As Variant
        Dim num(3) As Byte
        num(0) = param / 3
        num(1) = param / 4
        num(2) = param / 5
        num(3) = param / 6
        ReturnArr = num
    End FunctionPrivate Sub Command1_Click()
        Dim ret As Variant
        ret = ReturnArr(200)
        If IsArray(ret) Then
            For i = LBound(ret) To UBound(ret)
                MsgBox (ret(i))
            Next
        End If
    End Sub