標題:
[發問]
[發問]如何將一個陣列分成兩段輸出呢
[打印本頁]
作者:
yurckr
時間:
2010-10-21 13:10
標題:
[發問]如何將一個陣列分成兩段輸出呢
請問 我想把一個陣列 分別放在兩個範圍 這樣的寫法 確讓兩個範圍的資料都是一樣的 請問怎麼寫才是對的呢
想把 nameitem(31,1) 到 nameitem(60,9) 得資料放到 Range("M7:U36")
Dim nameitem(60, 9) As Variant
For i = 1 To 60: For j = 1 To 9
nameitem(i, j) = Cells(i + 6, j + 25)
If i = 31 And j = 1 Then
Set myrange_a = Sheets(ftworklcal).Range("M7:U36")
Sheets(ftworklcal).Range("m7:u36").Value = nameitem
Else
Set myrange_a = Sheets(ftworklcal).Range("B7:J36")
Sheets(ftworklcal).Range("B7:J36").Value = nameitem
End If
Next j
Next i
Set myrange_a = Nothing
End Function
請指教 謝謝
作者:
oobird
時間:
2010-10-21 14:09
1.陣列不須要循環賦值,直接nameitem=[z7:ag66]即可
2.寫入儲存格的動作要在循環外。
作者:
GBKEE
時間:
2010-10-21 14:30
本帖最後由 GBKEE 於 2010-10-21 14:31 編輯
回復
1#
yurckr
Sub Ex()
Dim MyRange_a As Range, nameitem(1 To 60, 1 To 9), i%, j%
For i = 1 To 60
For j = 1 To 9
nameitem(i, j) = Cells(i + 6, j + 25)
Next
Next
Set MyRange_a = Sheets(ftworklcal).Range("B7:J36")
For i = 1 To MyRange_a.Rows.Count
MyRange_a.Rows(i) = Application.Index(nameitem, i)
Next
Set MyRange_a = Sheets(ftworklcal).Range("M7:U36")
For i = 1 To MyRange_a.Rows.Count
MyRange_a.Rows(i) = Application.Index(nameitem, i + 30)
Next
End Sub
複製代碼
作者:
yurckr
時間:
2010-10-21 14:50
GBKEE兄 太感謝你了,完全符合我要的結果
Application.Index 這個關鍵的用法我又學了一招
也感謝 oobird 的指教
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)