[算表] VBA 隱藏欄列後抓不到最後一個有值格

看板Office作者 (☒☒)時間4年前 (2019/10/04 12:37), 4年前編輯推噓0(0015)
留言15則, 3人參與, 4年前最新討論串1/1
軟體: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

10/04 12:54, 4年前 , 1F
如果是某欄為準來抓取最後一個有值的儲存格range.end
10/04 12:54, 1F

10/04 12:55, 4年前 , 2F
或是範圍列內最後一個有值儲存格range.find
10/04 12:55, 2F
我原本已經有用過Range.End跟range.find,但是達不到我想要的結果 因為最後一個有值格的位置跟值都是不固定的 所以不知道該怎麼處理 SpecialCells(xlLastCell)是最一開始用的,也是不行 ※ 編輯: Kamikiri (123.193.189.222 臺灣), 10/05/2019 22:33:27

10/06 10:19, 4年前 , 3F
不確定range.find是如何使用的,是搜尋"*"且
10/06 10:19, 3F

10/06 10:20, 4年前 , 4F
searchdirection以xlprevius也無法達到要的結果嗎?
10/06 10:20, 4F

10/06 14:25, 4年前 , 5F
了解 看來是我沒有設好Direction
10/06 14:25, 5F

10/06 14:25, 4年前 , 6F
目前是用Cells.Find().Column & Row抓出最後一格的位置
10/06 14:25, 6F

10/06 14:26, 4年前 , 7F
由於有時候會需要分開使用 所以也分別設成2個變數
10/06 14:26, 7F

10/06 14:26, 4年前 , 8F
已可在有隱藏欄列的情況正常使用 但End系列一律廢掉
10/06 14:26, 8F

10/06 14:27, 4年前 , 9F
Google也很多國外文章說usedrange會誤判 所以建議不用
10/06 14:27, 9F

10/06 14:28, 4年前 , 10F
實際經過測試後 就算沒有隱藏欄列 usedrange也常出錯
10/06 14:28, 10F

10/06 14:29, 4年前 , 11F
而end系列又是以usedrange去做判斷 看來以後別用比較好
10/06 14:29, 11F

10/06 14:29, 4年前 , 12F
感謝教學
10/06 14:29, 12F

10/06 22:40, 4年前 , 13F
通常取A欄最後一格比較常看到的用法是:
10/06 22:40, 13F

10/06 22:40, 4年前 , 14F
Range("A" & Rows.Count).End(xlUp)
10/06 22:40, 14F

10/06 22:44, 4年前 , 15F
你的狀況,或許可以試試Range("A20000").End(xlUp)
10/06 22:44, 15F
文章代碼(AID): #1Tbio6_d (Office)