iT邦幫忙

0

Excel VBA 橫向讀資料

  • 分享至 

  • xImage

程式新手又來發問,因為不知道該用什麼關鍵字來搜尋。

目前試著寫個小 VBA 程式來讀取資料,已習得 A1:C200 可以用 "A1:C" & I (I由別的動作取得值) 的方式將值套進陣列中,但若是 A1:GZ3 ,雖然 A - GZ 的個數可以算得出來,但是 GZ 不是固定的,有可能是 GQ 或者是 GT ,若是這樣變動的欄數,要如何將值整個套進陣列中?

謝謝!

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
BeEvil_Y
iT邦新手 4 級 ‧ 2023-03-20 17:27:05

參考資料1:https://blog.gtwang.org/programming/excel-vba-array/
參考資料2:https://learn.microsoft.com/zh-tw/previous-versions/office/troubleshoot/office-developer/select-cells-rangs-with-visual-basic

以下不是最好的答案。
因為還要顧你的中間空白,跟其它例外狀況。

Dim i As Integer
Dim myTable As Variant

'取最後一列
lastCol = ActiveSheet.Range("a1").End(xlToRight).Column
'取最後一行
lastRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, lastCol).End(xlUp).Row

'用Range抓座標取陣列
myTable = ActiveSheet.Range("a1", ActiveSheet.Cells(lastRow, lastCol)).Value
canchang iT邦新手 3 級 ‧ 2023-03-20 20:34:23 檢舉

原來如此,沒想過要這樣的組合。
感謝!

0
blanksoul12
iT邦研究生 5 級 ‧ 2023-03-21 08:47:47

也可以找找 usedrange 或 currentregion

0
paicheng0111
iT邦大師 5 級 ‧ 2023-03-21 08:56:35
Dim myRng as Range

Set myRng = Range("A1").CurrentRegion

https://learn.microsoft.com/zh-tw/office/vba/api/excel.range.currentregion

我要發表回答

立即登入回答