Dim B() As Double
ReDim B(m - 1, 3)
Dim A() As String
ReDim A(m, 4) As String
A = Split(Text1.Text, Chr(13) & Chr(10))
              '这步会自动重定义数组大小
For i = 0 To (m - 2)
                                  '在这里下断点,检查A数组的大小
For j = 0 To 2
B(i, j) = CDbl(A(i + 1, j + 1))
                       'split 后得到的是维数组,给二个下标会报错
Next j
Next i
----------------------------------------------
Dim B() As Double
                              
Dim A() As String
    j = Len(Text1.Text)
                                 '取原长度
Do
    i = j
                                               '保存原长度
    If Right(Text1.Text, 2) = vbCrLf Then
               '如果最后有一回车换行符
        Text1.Text = Left(Text1.Text, i - 2)
            '干掉回车换行符
    End If
    j = Len(Text1.Text)
                                 '取新长度
Loop While i <> j
                                       '如果新长度不等于原长度,说明干掉了一个空行,继续循环,是否还有空行
A = Split(Text1.Text, Chr(13) & Chr(10))
              '分解到数组A中,会自动重定义数组大小,只能得到一维数组
redim b(ubound(a)-2)
           '不要第一个和第二个,那就要少二个元素,使用UBOUND取数组最大下标。
                               '因为是0开始的,所以起始下标不用取。如果不能确定那也要取
For i = 1 To UBound(A) - 1
  B(i - 1) = CDbl(A(i))
Next i
------------
表示没看出来你的二维数组是怎么来,怎么转换结果。
[此贴子已经被作者于2018-10-7 21:19编辑过]