[算表] 儲存格範圍選取問題(左上至右下)

作者: luckid (luckid)   2016-09-27 23:18:03
軟體:MS Excel
版本:2007
參考檔案下載連結:
https://drive.google.com/open?id=0B6tYnZny04P0cTAwRUpsTVI0X1U
參考檔案圖片示意:
http://imgur.com/a/tE7Fo
各位前輩好,
目前小弟在練習使用VBA選取範圍,
若使用以下程式碼,
可選取從C1開始算起至右下的連續儲存格範圍,
Range("c1").Resize(Cells(Rows.Count, 3).End(xlUp).Row, 1).Select
Range(Selection, Selection.End(xlToRight)).Select
但是如附檔所示,
G欄,H欄及J欄的儲存格雖含有資料,卻無法被選取.
不知該如何改寫程式碼,
讓程式可以將C1視為選取範圍的最左上角,
往右下選取所有包含值的儲存格範圍,
還望前輩不吝指點迷津,十分感謝.
作者: s212gj (PTT分身就是個黑天鵝)   2016-09-27 23:21:00
可以先自定義range
作者: soyoso (我是耀宗)   2016-09-27 23:32:00
以提供的檔案有機會以 http://imgur.com/a/I0gGT
作者: luckid (luckid)   2016-09-27 23:34:00
非常感謝前輩們指點,不使用UsedRange是因為若儲存格被修改例如長寬被改過,使用UsedRange會選取到,不管儲存格有無值
作者: soyoso (我是耀宗)   2016-09-27 23:35:00
http://imgur.com/4sjXcT2 如以左側至右下最後有值儲存格可以用range.end
作者: luckid (luckid)   2016-09-27 23:37:00
非常感謝s大,我再試試看
作者: soyoso (我是耀宗)   2016-09-27 23:54:00
抱歉上面連結為右上最後有值至左下角最後有值的範圍才是要抓右側及下方有值(不限特定欄列range.end判斷)的話以range.find的方式
作者: luckid (luckid)   2016-09-28 11:24:00
非常感謝s大提供方式,屢次受您熱心幫助,不勝感激
作者: soyoso (我是耀宗)   2016-09-28 12:53:00
也可用range.specialcells以常數(文字、數字)後在以最右下角,range("C1",取得的右下角的儲存格)
作者: luckid (luckid)   2016-09-29 10:24:00
非常感謝s大提供多種處理方式,小弟從中獲益良多.再次感謝

Links booklink

Contact Us: admin [ a t ] ucptt.com