我多次使用此代碼來獲取最后一行編號并且它作業正常,
Dim sh As Worksheet: Set sh = ActiveSheet
Dim lastRow As Long
lastRow = sh.Cells.Find("*", LookIn:=xlFormulas, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
我需要將其轉換為函式,我嘗試了以下操作,但輸出始終0沒有引發錯誤。
Function LR(sh As Worksheet) As Long
Dim lastRow As Long, LastColumn As Long
lastRow = sh.Cells.Find("*", LookIn:=xlFormulas, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
End Function
并像這樣使用
Dim i As Long: i = LR(ActiveSheet)
Debug.Print i
uj5u.com熱心網友回復:
你的函式永遠不會回傳任何東西。
LR = lastRow如果您希望它回傳值,則需要添加。
或者像這樣回傳它(因為你沒有使用LastColumn):
Function LR(sh As Worksheet) As Long
LR = sh.Cells.Find("*", LookIn:=xlFormulas, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
End Function
uj5u.com熱心網友回復:
最后一行函式
- 如果作業表為空,則結果將為
0(的初始值LR)。
Sub LRtest()
Debug.Print LR(ThisWorkbook.Worksheets("Sheet1"))
End Sub
Function LR(ByVal ws As Worksheet) As Long
' Since this will fail if the worksheet is filtered, you could add...
'If ws.FilterMode Then ws.ShowAllData ' ... to remove any filters.
Dim lCell As Range
Set lCell = ws.UsedRange.Find("*", , xlFormulas, , xlByRows, xlPrevious)
If Not lCell Is Nothing Then LR = lCell.Row
End Function
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/484814.html
上一篇:使用單元格值在檔案夾中查找檔案,然后重命名為另一個單元格值
下一篇:在VBA中動態格式化特定單元格
