[算表] 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