[算表] VBA 隐藏栏列后抓不到最后一个有值格

楼主: Kamikiri (☒☒)   2019-10-04 12:37:23
软件:OFFICE 365 EXCEL
版本:1908
由于我希望文件的使用范围被限制在A1到AZ20000之间
所以我把BA后的栏跟20001后的列全部隐藏了
但是发现隐藏栏列之后
只要使用Ctrl+End的指令(VBA指令也一样)
就会一律跳到AZ20000=有限范围的最后一格
而不是最后一个有值的格
就算最后的值是写在G8,也照样会跳到AZ20000
除了不要隐藏栏列之外,有办法解决这个问题吗?
作者: soyoso (我是耀宗)   2019-10-04 12:54:00
如果是某栏为准来抓取最后一个有值的储存格range.end或是范围列内最后一个有值储存格range.find
楼主: Kamikiri (☒☒)   2019-10-06 14:25:00
了解 看来是我没有设好Direction目前是用Cells.Find().Column & Row抓出最后一格的位置由于有时候会需要分开使用 所以也分别设成2个变量已可在有隐藏栏列的情况正常使用 但End系列一律废掉Google也很多国外文章说usedrange会误判 所以建议不用实际经过测试后 就算没有隐藏栏列 usedrange也常出错而end系列又是以usedrange去做判断 看来以后别用比较好感谢教学
作者: newacc (XD)   2019-10-06 22:40:00
通常取A栏最后一格比较常看到的用法是:Range("A" & Rows.Count).End(xlUp)你的状况,或许可以试试Range("A20000").End(xlUp)

Links booklink

Contact Us: admin [ a t ] ucptt.com