返回列表 上一主題 發帖

[發問] 多欄位的資料如何存入陣列

[發問] 多欄位的資料如何存入陣列

要將B欄到E欄的資料存入陣列,因為只有四欄,所以我用前輩教的方式:

ar = Array("B", "C", "D","E")
For i = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
ReDim Preserve Ay(s) '將資料存入陣列
Ay(s) = Array(.Cells(i, ar(0)).Value, .Cells(i, ar(1)).Value, .Cells(i, ar(2)).Value, .Cells(i, ar(3)).Value)
s = s + 1

這樣就可以存入陣列了,可是如果有20多欄的資料要存,很顯然這種方式會很累,不知該如何做才好。
還有當資料都移轉完了以後,有一些非連續性儲存格的資料想要把它刪除,如:

With Sheet1
'.[C1].ClearContents
'.[D4].ClearContents
'.[G10].ClearContents
'.[N4:N6].ClearContents
'.[B11:AU12].ClearContents
End With

有沒有辦法用陣列的方式簡化上面的程式碼?
Jess

謝謝 Hsieh 大大
Range([B2], Cells(Rows.Count, 2))
這一段著實看不懂,感覺好抽象,觀念中一個 Range 是由一個"欄" + 一個"列"組合而成,上面這一段卻是由兩組組合而成的,這是什麼意思,可以教導一下晚輩嗎?
Jess

TOP

GBKEE大大好
事實上,我也常常會去找說明檔,可是真正能點開的說明連結,好像沒幾個,覺得很奇怪。

ay = Range([B2], Cells(Rows.Count, 2).End(xlUp).Offset(, 19))Value
因此這句的意思就是,從B欄的B2到最後一筆資料,是這個陣列的頭部,然後向右19欄擴展。假設是B2到B6,那麼這個陣列就會存進5x20個 Cells 的資料,我這樣的理解正確嗎?
Jess

TOP

謝謝 Hsieh 大和 GBKEE 大的解說!
Jess

TOP

        靜思自在 : 君子立恆志,小人恆立志。
返回列表 上一主題