標題:
教我怎樣用陣列寫程式碼~~~
[打印本頁]
作者:
oak0723-1
時間:
2010-9-5 16:19
標題:
教我怎樣用陣列寫程式碼~~~
本帖最後由 oak0723-1 於 2010-9-5 20:57 編輯
小弟對這個程式碼有疑問
Dim a, r%, i%, arr()
a = Sheets("1").[c10].CurrentRegion
r = 1
For i = 1 To UBound(a)
ReDim Preserve arr(1 To 3, 1 To r)
arr(1, r) = a(i, 1): arr(2, r) = a(i, 2): arr(3, r) = a(i, 3)
r = r + 6
Next
Sheets("2").[c4].Resize(r - 6, 2) = Application.Transpose(arr)
Sheets("2").[k4].Resize(r - 6, 1) = Application.Transpose(Application.Index(arr, 3))
問題1>arr(1, r) = a(i, 1): arr(2, r) = a(i, 2): arr(3, r) = a(i, 3)
為何不能寫成arr(1, r) = a(1, i): arr(2, r) = a(2, i): arr(3, r) = a(3, i)
問題2>為何要Transpose轉置??不轉置不行嗎?
以上雖然小弟有給他改寫並試驗(如附件控制鈕"test3"."test4")
執行後確實是不行
我應該是看不懂這個程式碼陣列意思
可否幫幫小弟忙解釋一下
讓小弟學習
作者:
oobird
時間:
2010-9-5 19:34
我們一開始無法知道這個陣列有多大,所以用動態陣列,而動態陣列有個規則,就是只能改變第二維的大小,所以程式中 arr(1, r) = a(i, 1): arr(2, r) = a(i, 2): arr(3, r) = a(i, 3)是把原來a直向的排列變成橫向的排列載入arr
中,以適應改變大小的規則,最後再轉置寫入工作表上。
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)