標題:
[發問]
不連續的資料範圍抓取
[打印本頁]
作者:
owen06
時間:
2013-8-14 09:42
標題:
不連續的資料範圍抓取
請問我有一筆資料要選取,但是內容並沒有連續,如圖所示:
[attach]15771[/attach]
我想要自動抓取有資料的範圍,以圖來說的話就是A2:C9
我有查到版上教的Range([a2], [a65536].End(xlUp)).Select,
可是這只能抓A欄,要怎麼涵蓋到C欄我就不會了…
然後又試另一個Range("A2").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
可是這樣只能抓連續的資料,中間有空白的他就會斷掉了@@
想請教該怎麼設定,才能讓系統去判定有資料的範圍呢?煩請賜教,謝謝~
作者:
stillfish00
時間:
2013-8-14 09:58
回復
1#
owen06
資料是否包含整列空白?
作者:
owen06
時間:
2013-8-14 10:10
回復
2#
stillfish00
S大你好,以這張圖來說的話,假設A5:C5這整列都空白,也還是整個抓取A2:C9,
然後假如B10新輸入數字,資料範圍就會變成A2:C10,
請問這有辦法達成嗎?謝謝賜教~
作者:
stillfish00
時間:
2013-8-14 11:21
本帖最後由 stillfish00 於 2013-8-14 11:24 編輯
回復
3#
owen06
Dim lMaxRow As Long
With ActiveSheet
lMaxRow = Application.WorksheetFunction.Max(.[A65535].End(xlUp).Row, _
.[B65535].End(xlUp).Row, _
.[C65535].End(xlUp).Row)
.Range("A2:C" & lMaxRow).Select
End With
複製代碼
作者:
owen06
時間:
2013-8-14 12:15
回復
4#
stillfish00
s大謝謝你,使用ok,感恩!
作者:
sunnyso
時間:
2013-8-14 12:18
用 usedrange 試一下
作者:
oobird
時間:
2013-8-14 13:31
可用find方法快速找到最大列號與最大欄號
r = Cells.Find("*", , , , 1, 2).Row
c = Cells.Find("*", , , , 2, 2).Column
Range(Cells(2, 1), Cells(r, c)).Select
複製代碼
作者:
owen06
時間:
2013-8-14 14:45
回復
6#
sunnyso
sunnyso大,我有用過usedrange,可是他會把表頭一起包起來,所以沒辦法符合需求,不過也謝謝你~
oobird大,你的方法使用過後也可以達成我的需求,謝謝你~
作者:
sunnyso
時間:
2013-8-14 15:49
usedrange + offset + resize
作者:
stillfish00
時間:
2013-8-14 16:56
回復
7#
oobird
好方法,通用!
回復
8#
owen06
表頭不是問題,可以其他方法截掉,
usedrange主要問題是其他儲存格有動過格式就可能會包含
例如儲存格底色設定無填滿也會含在內。
如果確定不會動到,才可使用usedrange
作者:
terow5310
時間:
2013-8-29 17:08
大大感謝你的分享~~~
作者:
Kubi
時間:
2013-9-1 21:50
Range("A2:C" & Cells.SpecialCells(11).Row).Select
作者:
owen06
時間:
2013-9-2 08:32
回復
12#
Kubi
這個真的厲害!可以順便請教一下SpecialCells(11)這是什麼意思嗎?
作者:
Kubi
時間:
2013-9-2 09:28
也可再簡化:
Range("A2", Cells.SpecialCells(11)).Select
SpecialCells(11)=SpecialCells(xlCellTypeLastCell)
作者:
GBKEE
時間:
2013-9-2 10:17
回復
13#
owen06
[attach]15916[/attach]
[attach]15917[/attach]
[attach]15918[/attach]
作者:
oobird
時間:
2013-9-2 13:09
SpecialCells(11) = SpecialCells(xlCellTypeLastCell)
工作表使用範圍的最右下角。
SpecialCells(11).Row參數可在不論那一欄的資料多都可取得最大列號
但還是有盲點,當刪除某些資料後,最大列號還是不會改變!
作者:
GBKEE
時間:
2013-9-2 15:10
但還是有盲點,當刪除某些資料後,最大列號還是不會改變!
oobird 發表於 2013/9/2 13:09
Option Explicit
Sub Ex()
Range("A2", UsedRange.SpecialCells(11)).Select
End Sub
複製代碼
作者:
owen06
時間:
2013-9-3 10:35
恩~你們實在都好厲害!讓我獲益良多
用版主的語法後,的確就都OK了
如果要指定欄位的話,就用KUBI大教的:
Range("A2:C" & UsedRange.SpecialCells(11).Row).Select
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)