看板 Office 關於我們 聯絡資訊
軟體:OFFICE 365 EXCEL 版本:1908 由於我希望文件的使用範圍被限制在A1到AZ20000之間 所以我把BA後的欄跟20001後的列全部隱藏了 但是發現隱藏欄列之後 只要使用Ctrl+End的指令(VBA指令也一樣) 就會一律跳到AZ20000=有限範圍的最後一格 而不是最後一個有值的格 就算最後的值是寫在G8,也照樣會跳到AZ20000 除了不要隱藏欄列之外,有辦法解決這個問題嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.248.94.55 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1570163846.A.FE7.html
soyoso: 如果是某欄為準來抓取最後一個有值的儲存格range.end 10/04 12:54
soyoso: 或是範圍列內最後一個有值儲存格range.find 10/04 12:55
我原本已經有用過Range.End跟range.find,但是達不到我想要的結果 因為最後一個有值格的位置跟值都是不固定的 所以不知道該怎麼處理 SpecialCells(xlLastCell)是最一開始用的,也是不行 ※ 編輯: Kamikiri (123.193.189.222 臺灣), 10/05/2019 22:33:27
soyoso: 不確定range.find是如何使用的,是搜尋"*"且 10/06 10:19
soyoso: searchdirection以xlprevius也無法達到要的結果嗎? 10/06 10:20
Kamikiri: 了解 看來是我沒有設好Direction 10/06 14:25
Kamikiri: 目前是用Cells.Find().Column & Row抓出最後一格的位置 10/06 14:25
Kamikiri: 由於有時候會需要分開使用 所以也分別設成2個變數 10/06 14:26
Kamikiri: 已可在有隱藏欄列的情況正常使用 但End系列一律廢掉 10/06 14:26
Kamikiri: Google也很多國外文章說usedrange會誤判 所以建議不用 10/06 14:27
Kamikiri: 實際經過測試後 就算沒有隱藏欄列 usedrange也常出錯 10/06 14:28
Kamikiri: 而end系列又是以usedrange去做判斷 看來以後別用比較好 10/06 14:29
Kamikiri: 感謝教學 10/06 14:29
newacc: 通常取A欄最後一格比較常看到的用法是: 10/06 22:40
newacc: Range("A" & Rows.Count).End(xlUp) 10/06 22:40
newacc: 你的狀況,或許可以試試Range("A20000").End(xlUp) 10/06 22:44