[算表] 储存格范围选取问题(左上至右下)

楼主: 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