Board logo

標題: 選定某個不確定數量的範圍的語法怎麼寫 [打印本頁]

作者: woodyliu    時間: 2015-7-24 09:35     標題: 選定某個不確定數量的範圍的語法怎麼寫

大家好~最近因工作需求在自學EXCEL VBA的寫法 ,已提升某些業務的效率
工作上我有個需求,每日我必須調出前一天的資料,
筆數不一定,有時候僅有幾百幾十筆,有時候卻有上萬筆。

雖然我有寫一個是將筆數自動抓到10萬筆,但是我想要更美化相關巨集。

所以想要寫一個是,巨集會自動抓取A2:BX 的範圍。 BX為最後一筆資料,數量每天都不一樣。

我嘗試用
.End(xlDown)去代B列
或是用 .end(xlDown) 與.offset 的語法去代A列
也嘗試用 Range ("A2: i ") ,設定 for i = (這邊我嘗試用上面好幾種方式)
都是顯示與法錯誤。

昨天我爬文查了一個晚上,還是查不出個頭緒..
可以請大家告知我該用哪種語法,謝謝大家..
作者: lpk187    時間: 2015-7-24 11:09

本帖最後由 lpk187 於 2015-7-24 11:11 編輯

回復 1# woodyliu
我提供下列各種寫法,你用F8逐行的執行看看,在觀看的過程中請打開"區域變數視窗"來觀察變數的變化會更瞭解的
[attach]21475[/attach]
  1. Public Sub Ex()
  2. aa = Cells(Rows.Count, 1).End(xlUp).Row
  3. Range("A1:B" & aa).Select
  4. aa = Cells(Rows.Count, 1).End(xlUp).Address
  5. Range("A1:" & aa).Select

  6. aa1 = Cells(1, 1).End(xlDown).Row
  7. Range("A1:B" & aa1).Select
  8. aa1 = Cells(1, 1).End(xlDown).Address
  9. Range("A1", aa1).Select

  10. bb = Cells(Rows.Count, 2).End(xlUp).Row
  11. Range("A1:B" & bb).Select
  12. bb = Cells(Rows.Count, 2).End(xlUp).Address
  13. Range("A1", bb).Select

  14. bb1 = Cells(1, 2).End(xlDown).Row
  15. Range("A1:B" & bb1).Select
  16. bb1 = Cells(1, 2).End(xlDown).Address
  17. Range("A1", bb1).Select
  18. End Sub
複製代碼

作者: woodyliu    時間: 2015-7-24 11:11

謝謝您的幫忙~~我研究一下QQ
作者: lpk187    時間: 2015-7-24 11:20

回復 1# woodyliu

也嘗試用 Range ("A2: i ") ,設定 for i = (這邊我嘗試用上面好幾種方式)
你上面紅字的部份語法也寫錯在雙引號中(")的字為字串,i是變數,要用連結的方式來連結才能讀到變數i的值
Range ("A2: " & i)這裡i的值必須為儲存格的位置Address,為字串
Range ("A2: B" & i)這裡i的值則是為列號Row,為數字
上面2種寫法皆可,只是定義i變數時不同罷了
作者: woodyliu    時間: 2015-7-24 11:34

請問~
我看板上很多人在變數都設定 aa 、bb等~
請問這根直接設定 i有不同嗎?

還是說aa 、bb其實是有特別的含意跟用法
作者: lpk187    時間: 2015-7-24 12:00

回復 5# woodyliu


    aa、bb 只是方便打字而已!
請參考VBA中的宣告變數說明




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)