返回列表 上一主題 發帖

[發問] [發問]如何將一個陣列分成兩段輸出呢

[發問] [發問]如何將一個陣列分成兩段輸出呢

請問 我想把一個陣列 分別放在兩個範圍 這樣的寫法 確讓兩個範圍的資料都是一樣的 請問怎麼寫才是對的呢

想把 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

請指教 謝謝

1.陣列不須要循環賦值,直接nameitem=[z7:ag66]即可
2.寫入儲存格的動作要在循環外。

TOP

本帖最後由 GBKEE 於 2010-10-21 14:31 編輯

回復 1# yurckr
  1. Sub Ex()
  2. Dim MyRange_a As Range, nameitem(1 To 60, 1 To 9), i%, j%
  3. For i = 1 To 60
  4.     For j = 1 To 9
  5.         nameitem(i, j) = Cells(i + 6, j + 25)
  6.     Next
  7. Next
  8. Set MyRange_a = Sheets(ftworklcal).Range("B7:J36")
  9. For i = 1 To MyRange_a.Rows.Count
  10.    MyRange_a.Rows(i) = Application.Index(nameitem, i)
  11. Next
  12. Set MyRange_a = Sheets(ftworklcal).Range("M7:U36")
  13. For i = 1 To MyRange_a.Rows.Count
  14.    MyRange_a.Rows(i) = Application.Index(nameitem, i + 30)
  15. Next
  16. End Sub
複製代碼

TOP

GBKEE兄 太感謝你了,完全符合我要的結果

Application.Index 這個關鍵的用法我又學了一招

也感謝 oobird 的指教

TOP

        靜思自在 : 布施如播種,以歡喜心滋潤種子,才會發芽。
返回列表 上一主題