返回列表 上一主題 發帖

選定某個不確定數量的範圍的語法怎麼寫

選定某個不確定數量的範圍的語法怎麼寫

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

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

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

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

昨天我爬文查了一個晚上,還是查不出個頭緒..
可以請大家告知我該用哪種語法,謝謝大家..

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

回復 1# woodyliu
我提供下列各種寫法,你用F8逐行的執行看看,在觀看的過程中請打開"區域變數視窗"來觀察變數的變化會更瞭解的
  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
複製代碼

TOP

謝謝您的幫忙~~我研究一下QQ

TOP

回復 1# woodyliu

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

TOP

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

還是說aa 、bb其實是有特別的含意跟用法

TOP

回復 5# woodyliu


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

TOP

        靜思自在 : 要批評別人時,先想想自己是否完美無缺。
返回列表 上一主題