先把二维数组的数据放入一维数组,然后重定义二维数组,再把一维数组的数据放入二维数组。 如 Dim Ary2() As String Dim Ary1() As StringRedim Ary2(17,4) ...Redim Ary1((17+1)*(14+1)) k = 0 For i = 0 to 17 For j = 0 to 4 Ary1(k) = Ary2(i,j) k = k + 1 Next j Next ik = 0 Redim Ary2(4,17) For i = 0 to 4 For j = 0 to 17 Ary2(i,j) = Ary1(k) k = k + 1 Next j Next i
楼主看看这个(太多的数据,速度会慢的):'用于下标为0开始的二维数组转换 Private Sub ExchangeArr2D(arrSour() As String, arrNew() As String) Dim i&, j& Dim m&, n&, p&
m = UBound(arrSour, 1) n = UBound(arrSour, 2) ReDim arrNew(n, m) For i = 0 To m For j = 0 To n arrNew(j, i) = arrSour(i, j) Next Next End Sub'应用示例 Private Sub Test() Dim arrTemp() As String Dim Ary(17, 4) As String Dim i&, j&
'Ary() 读取数据…… '调用变换过程: Call ExchangeArr2D(Ary, arrTemp) ' 输出转换结果 For i = 0 To 4 For j = 0 To 17 Debug.Print i, j, arrTemp(i, j) Next Next End Sub
Dim Ary1(17, 4) As String, Ary2(4, 17) As String Dim i As Long, j As LongFor i = 0 To 17 For j = 0 To 4 Ary2(j, i) = Ary1(i, j)Next j Next i
如
Dim Ary2() As String
Dim Ary1() As StringRedim Ary2(17,4)
...Redim Ary1((17+1)*(14+1))
k = 0
For i = 0 to 17
For j = 0 to 4
Ary1(k) = Ary2(i,j)
k = k + 1
Next j
Next ik = 0
Redim Ary2(4,17)
For i = 0 to 4
For j = 0 to 17
Ary2(i,j) = Ary1(k)
k = k + 1
Next j
Next i
function GetNewArray(var Row as integer,var Col as integer) as string
begin
GetNewArray=Ary(col,row)
end;
为什么需要转换?17行4列转成4行17号吗?如果数据量不是很大建议用
dim Tmp() as Variant,dim str as string
..
str=rs(x)
..
redim tmp(xx)
..
tmp(0)=split(str,"XXXXX")
tmp(1)=split(tmp(0),"yyyyy")这样很动态,随便要几行列,甚至行列还可以不一致咯~~
Private Sub ExchangeArr2D(arrSour() As String, arrNew() As String)
Dim i&, j&
Dim m&, n&, p&
m = UBound(arrSour, 1)
n = UBound(arrSour, 2)
ReDim arrNew(n, m)
For i = 0 To m
For j = 0 To n
arrNew(j, i) = arrSour(i, j)
Next
Next
End Sub'应用示例
Private Sub Test()
Dim arrTemp() As String
Dim Ary(17, 4) As String
Dim i&, j&
'Ary() 读取数据……
'调用变换过程:
Call ExchangeArr2D(Ary, arrTemp)
' 输出转换结果
For i = 0 To 4
For j = 0 To 17
Debug.Print i, j, arrTemp(i, j)
Next
Next
End Sub
Dim i As Long, j As LongFor i = 0 To 17
For j = 0 To 4 Ary2(j, i) = Ary1(i, j)Next j
Next i