返回列表 上一主題 發帖

[發問] 不連續的資料範圍抓取

[發問] 不連續的資料範圍抓取

請問我有一筆資料要選取,但是內容並沒有連續,如圖所示:

圖示.jpg

我想要自動抓取有資料的範圍,以圖來說的話就是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
可是這樣只能抓連續的資料,中間有空白的他就會斷掉了@@
想請教該怎麼設定,才能讓系統去判定有資料的範圍呢?煩請賜教,謝謝~

回復 1# owen06
資料是否包含整列空白?

TOP

回復 2# stillfish00

S大你好,以這張圖來說的話,假設A5:C5這整列都空白,也還是整個抓取A2:C9,
然後假如B10新輸入數字,資料範圍就會變成A2:C10,
請問這有辦法達成嗎?謝謝賜教~

TOP

本帖最後由 stillfish00 於 2013-8-14 11:24 編輯

回復 3# owen06
  1.   Dim lMaxRow As Long
  2.   
  3.   With ActiveSheet
  4.     lMaxRow = Application.WorksheetFunction.Max(.[A65535].End(xlUp).Row, _
  5.                                                 .[B65535].End(xlUp).Row, _
  6.                                                 .[C65535].End(xlUp).Row)
  7.     .Range("A2:C" & lMaxRow).Select
  8.   End With
複製代碼

TOP

回復 4# stillfish00

s大謝謝你,使用ok,感恩!

TOP

用 usedrange 試一下
ss

TOP

可用find方法快速找到最大列號與最大欄號
  1. r = Cells.Find("*", , , , 1, 2).Row
  2. c = Cells.Find("*", , , , 2, 2).Column
  3. Range(Cells(2, 1), Cells(r, c)).Select
複製代碼

TOP

回復 6# sunnyso


sunnyso大,我有用過usedrange,可是他會把表頭一起包起來,所以沒辦法符合需求,不過也謝謝你~

oobird大,你的方法使用過後也可以達成我的需求,謝謝你~

TOP

usedrange + offset + resize
ss

TOP

回復 7# oobird
好方法,通用!

回復 8# owen06
表頭不是問題,可以其他方法截掉,
usedrange主要問題是其他儲存格有動過格式就可能會包含
例如儲存格底色設定無填滿也會含在內。

如果確定不會動到,才可使用usedrange

TOP

        靜思自在 : 有智慧才能分辨善惡邪正;有謙虛才能建立美滿人生。
返回列表 上一主題