我定义了一个函数
public function getArrStr(strArr() as String) as String
   dim i as integer
   dim strTemp as String
   for i=0 to ubount(strArr)
      strTemp=strTemp & strArr(i)
   next
   getArrStr=strTemp
end function在一个窗体中这样使用
dim myInfo as String
myInfo=getArrStr(Array("name","age","sex"))
但是编译不了然后改成
dim myInfo as String
dim myInfoArr() as String
myInfoArr=Array("name","age","sex")
myInfo=getArrStr(myInfoArr)
能编译,但是执行到这里出错!求救,改如何写法?

解决方案 »

  1.   

    '修改为:
    Dim myInfo As String
    Dim myInfoArr() As String
    ReDim myInfoArr(0 To 2)
    myInfoArr(0) = "name"
    myInfoArr(1) = "age"
    myInfoArr(2) = "sex"
    myInfo = getArrStr(myInfoArr)
      

  2.   

    Array返回的variant类型,而myinfoarr是string类型,当然类型不匹配了,建议遇到此类问题多看一下msdn的说明
      

  3.   

    同意楼上另外for i=0 to ubount(strArr)
    应改为For i = 0 To UBound(strArr)最后,需要指出的是vb提供了join语句,没必要重写一个:
    Dim myInfo As String
    Dim myInfoArr() As String
    ReDim myInfoArr(0 To 2)
    myInfoArr(0) = "name"
    myInfoArr(1) = "age"
    myInfoArr(2) = "sex"
    myInfo = Join(myInfoArr, "")
    Debug.Print myInfo
      

  4.   

    函数定义ubount写错啦.
    应改为ubound
      

  5.   

    Private Sub Command1_Click()
    Dim myInfo As String
    Dim myInfoArr
    myInfoArr = Array("name", "age", "sex")
    myInfo = Join(myInfoArr, " ")
    MsgBox myInfo
    End Sub