怎样用数组传递参数???
 
  比如编写一个子函数,功能是把输入的数组的所有元素全部乘以2后再输出,由于我不会用数组传递参数,所以我现在只能这样实现:
  定义一个公共的数组,比如新建一个模块后,在此模块中定义:
  Global PubArray()
  
  然后,编写一个公共的数组处理函数
  Public Sub DealArray(ArrayLength)
    dim i
    for i=0 to ArrayLength-1
       PubArray(i)=PubArray(i)*2
    next
  End Sub  然后,在要处理一个数组时,比如在一个按钮控件的Click事件中要处理一个叫ArrayToBeDeal()  Private Sub Command1_Click()
    Dim i
    Dim ArrayToBeDeal(3)
    '对数组赋值
    for i=0 to 2
       ArrayToBeDeal(i)=4
    next    '开始调用公共函数,来对此数组的所有元素扩大两倍  
    redim PubArray(3)
    for i=0 to 2
       PubArray(i)=ArrayToBeDeal(i)
    next
    DealArray(3)'很愚蠢的办法,希望得到指正         '往后,ArrayToBeDeal()中的内容均扩大了两倍,可以往下执行了
 
  End Sub  这样的方法的确愚蠢,我希望能在公用函数DealArray中定义一个数组参数,类似C语言中的形式参数,只在
公用函数DealArray中能有效,出了此函数即消亡,并且公用函数DealArray能直接返回数组,类似C语言中
的返回一个数组指针,这样我就可以对出来的数组直接使用了,省去了定义公共数组,以及用循环语句先要对
公共数组赋值的麻烦!
   望得到大家的帮助,谢谢!

解决方案 »

  1.   

    Private Sub form_load()
    dim i as integer
    dim j as integer
    Dim a() as integer
      
     j=-1
     for i=1 to 10 
       j=j+1
       redim preserve a(j)
       a(j)=i
     next i
     call fun(a)
    end sub
    Public Function fun(a() As Integer)
    Dim i As Integer
    Dim j As Integer
      j = UBound(a)
      For i = 0 To j
          a(i) = a(i) * 2
      Next i
    End Function
      

  2.   

    Option Explicit
    Public Sub DealArray(SrcArray() As Long)
        Dim i As Long
        For i = LBound(SrcArray) To UBound(SrcArray)
           SrcArray(i) = SrcArray(i) * 2
        Next
    End SubPrivate Sub Command1_Click()
        Dim i As Long
        Dim ArrayToBeDeal(3) As Long
        '对数组赋值
        For i = 0 To 3
           ArrayToBeDeal(i) = 4
        Next    '开始调用公共函数,来对此数组的所有元素扩大两倍
        DealArray ArrayToBeDeal    '往后,ArrayToBeDeal()中的内容均扩大了两倍,可以往下执行了
     
      End Sub
      

  3.   

    问题补充:
      按照homezj(小吉)的方法,的确在调用了子函数后可以改变ArrayToBeDeal()中的内容。但是,如果希望调用了子函数后依据ArrayToBeDeal()的内容去改变OtherArrayToBeDeal()的内容,又应该怎样处理呢?就是类似把OtherArrayToBeDeal()作为子函数的返回值来处理一样???
      望得到大家的帮助,上面的问题已经结了帖,分不够可以加分!