程序是这样的
在窗体frm1中
dim temp1(43) as intergerprivate sub a()
    for i=0 to 43
        temp1(i)=1
    next i
    call b
end sub
public function b() as interger()
    b=temp1
end function然后在另一个窗体中
private sub c()
    dim temp2() as interger
    temp2=frm1.b
end sub现在出现一个问题,就是传递不过来,请问是为什么,错在哪里?应该怎么改?谢谢!

解决方案 »

  1.   

    两个问题.一个类型是Integer而不是interger.另一个就是frm1中还没有执行数组的附值操作,当然没有值啦.
    你要在frm1中扫行a函数后才能附值.
      

  2.   

    晕啊,integer是写错了,呵呵,不过那个不是问题,因为上面那段是我在网页上临时写的对于第二个错误,我没怎么看明白
    (你要在frm1中扫行a函数后才能附值)这个是什么意思啊?
      

  3.   

    对了,我这里的提示是在调用窗体中提示不能给temp2这个数组赋值
      

  4.   

    楼上说的对你要扫行附值
    B函数中
    FOR I=0 TO 43
    B(I)=TEMP1(I)
    NEXTC函数中FOR J=0 TO 43
    TEMP2(J)=B(J)
      

  5.   

    可以返回数组的.要执行你那个A函数Private Sub Form_Load()
    a'执行
    End Sub
      

  6.   

    狂晕,a里面call b是什么意思?
    应该b里面call a 才对,a这个sub从来没有运行过,没有初始化,怎么会有值呢?
    改为:在窗体frm1中
    dim temp1(43) as intergerprivate sub a()
        for i=0 to 43
            temp1(i)=1
        next i
        'call b'去掉了
    end sub
    public function b() as interger()
        b=temp1
        call a '舔的
    end functionto tmd007(学而时习之,不亦乐乎。姓菜名了字灌之号蹭之。) 
    可以返回数组的
      

  7.   

    sorry,错了,
    call a '添的
    应该放在b=temp1
    前面,我都气糊涂了~
      

  8.   

    '问题的核心是sub c 在调用frm1.b时,frm1.b并未对temp1()赋值
    '逻辑错误而已
    '修改后的代码:
    '/////////////////////////////Dim temp1(43) As IntegerPrivate Sub a()
        For i = 0 To 43
            temp1(i) = 1
        Next i
        'Call b '将这句去掉
    End Sub
    Public Function b() As Integer()
        a   '在这里显执行a 给temp1数组赋值
        b = temp1
    End Function
    '///////////////////////////////////////////