有一動態字符串
Str="1,2,3,4,5;a,b,c,d,e;A,B,C,D,E;...;..."
要用什麼方法能使其轉為如下格式的多維數組
1,2,3,4,5
a,b,c,d,e
A,B,C,D,E
...
...
也就是說分別用";"與","作為分隔符

解决方案 »

  1.   

    下面的够了:from MSDNInStr 函数
          返回 Variant (Long),指定一字符串在另一字符串中最先出现的位置。语法 InStr([start, ]string1, string2[, compare])InStr 函数的语法具有下面的参数:
    start 可选参数。为数值表达式,设置每次搜索的起点。如果省略,将从第一个字符的位置开始。如果 start 包含 Null,将发生错误。如果指定了 compare 参数,则一定要有 start 参数。 
    string1 必要参数。接受搜索的字符串表达式。 
    string2 必要参数。被搜索的字符串表达式。 
    Compare 可选参数。指定字符串比较。如果 compare 是 Null,将发生错误。如果省略 compare,Option Compare 的设置将决定比较的类型。 
    Mid 函数
    返回 Variant (String),其中包含字符串中指定数量的字符。语法Mid(string, start[, length]) 
    string 必要参数。字符串表达式,从中返回字符。如果 string 包含 Null,将返回 Null。 
    start 必要参数。为 Long。string 中被取出部分的字符位置。如果 start 超过 string 的字符数,Mid 返回零长度字符串 ("")。 
    length 可选参数;为 Variant (Long)。要返回的字符数。如果省略或 length 超过文本的字符数(包括 start 处的字符),将返回字符串中从 start 到尾端的所有字符。 
      

  2.   

    两个SPLIT
      iNNER=SPLIT(Str,“;”)这个得到按照;分隔的数组
    然后继续SPLIT刚才得到的数组中的每项,SPLIT(iNNER(I),",")
    如果要成多维 的,可以通过这个方法得到维数,然后再循环给值
      

  3.   

    用多维数组有点麻烦,为什么不用包含数组的数组?会更方便,也更符合原意:
    Private Sub Form_Load()
    Dim a() As Variant, b() As String, s As String, i As Long
    s = "1,2,3,4,5;a,b,c,d,e;A,B,C,D,E"
    b = Split(s, ";")
    ReDim a(UBound(b))
    For i = 0 To UBound(b)
        a(i) = Split(b(i), ",")
    Next
    Debug.Print a(0)(0) & "-" & a(2)(4)
    End Sub