[算表] VBA 中尋找最後一列非空白位置

看板Office作者 (被~~~切~~~八~~~段)時間12年前 (2012/02/10 18:24), 編輯推噓2(205)
留言7則, 3人參與, 最新討論串1/1
軟體: Excel 版本: 2010 Google 後查到以下程式碼可以找到最後一列的位置 ============================================================= Dim myRange As Range Set myRange = ThisWorkbook.Sheets(1).Range("B65536").End(xlUp) '表示在B欄 的最後一列 myRange.Select Debug.Print myRange.Value Debug.Print myRange.Address Debug.Print myRange.Row Debug.Print myRange.Column MsgBox "值 : " & vbTab & myRange.Value & vbCr & _ "位置: " & vbTab & myRange.Address & vbCr & _ "列數: " & vbTab & myRange.Row & vbCr & _ "行數: " & vbTab & myRange.Column & vbCr Set myRange = Nothing ============================================================== 但是經測試後發現, 這個方式並不管儲存格是否為空白. 如果最後一列的儲存格中有公式, 但是結果為空白, 請問該如何寫 VBA? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 96.55.113.197

02/10 19:01, , 1F
R = ActiveCell.SpecialCells(xlLastCell).Row
02/10 19:01, 1F
謝謝您提供的方法, 但是試了以後還是不行.. 我把問題再描述清楚一點: A1=left(B1,3) A2=left(B2,3) ... A50=left(B50,3) 在某個時間點得到 A1~A20 有數值, A21~A50 是空白. 我想選擇最後有數值的位置, 在這個例子應該是 --> A20, 但是試了很多方法, 都得到 --> A50.. 還是我應該想辦法讓空白的儲存格不存在公式呢? ※ 編輯: supisces 來自: 96.55.113.197 (02/11 01:00)

02/11 12:30, , 2F
用迴圈試試 for myrange.row to i step -1
02/11 12:30, 2F

02/11 12:32, , 3F
if range("A"&i)<>"" then exit for
02/11 12:32, 3F

02/11 12:32, , 4F
next
02/11 12:32, 4F

02/11 12:33, , 5F
抱歉一開始應該是for i= myrange.row to 1 step -1
02/11 12:33, 5F

02/11 12:37, , 6F
判斷到不是空白時跳出迴圈,當時的i值就為最後一筆Row
02/11 12:37, 6F

02/11 14:39, , 7F
謝謝, 用 if 判斷的確是一個可行的辦法..
02/11 14:39, 7F
文章代碼(AID): #1FDF129B (Office)