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