VB陣列 行列互換程式碼 ~~急 20點!!

2010-04-06 5:41 am
例如一3*3的陣列
1 2 3
4 5 6
7 8 9

換成
1 4 7
2 5 8
3 6 9


的程式碼為何?

回答 (2)

2010-04-07 11:08 pm
二維平面無論多大 (m * n) 只需二元陣列

Dim A(30, 20), B(30, 20) ' 30 直行,20 橫行
Dim x, y, i

i = 1
For y = 0 To 20
For x = 0 To 30
A(x, y) = i
i = i + 1
Next x
Next y

For y = 0 To 20

For x = 0 To 30

B(y, x) = A(x, y) ' 直變橫,橫變直

Next x

Next y
2010-04-06 8:33 pm
你好:

請試試如下:

Dim ar1, ar2
ar1 = Array(Array("1", "2", "3"), Array("4", "5", "6"), Array("7", "8", "9"))
ar2 = Application.WorksheetFunction.Transpose(ar1)

2010-04-06 19:21:13 補充:
另一範例試試

Sub aa()

Dim ar, ar1, ar2
Dim s1%, s2%, k1%, k2%
Dim mStr$

ar1 = Array(Array("1", "2", "3"), Array("4", "5", "6"), Array("7", "8", "9"))
ar2 = Application.WorksheetFunction.Transpose(WorksheetFunction.Transpose(ar1))

2010-04-06 19:21:56 補充:
For k1 = 1 To UBound(ar2, 1)
For k2 = 1 To UBound(ar2, 2)
mStr = mStr & ar2(k1, k2) & ","
Next

Debug.Print mStr
mStr = ""
Next

2010-04-06 19:22:39 補充:
ar = Application.WorksheetFunction.Transpose(ar1)

For k1 = 1 To UBound(ar, 1)
For k2 = 1 To UBound(ar, 2)
mStr = mStr & ar(k1, k2) & ","
Next

Debug.Print mStr
mStr = ""
Next


End Sub


收錄日期: 2021-04-25 20:33:49
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20100405000015KK09463

檢視 Wayback Machine 備份