ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   'LastRow' Function not working (https://www.excelbanter.com/excel-programming/304312-lastrow-function-not-working.html)

Randy Reese[_2_]

'LastRow' Function not working
 

This is basically what I have. It was working at one time. Not sure why now.


__________________________________________________ __

Private Sub btnProcess_Click()
btnProcess.Enabled = False

Call test1

End Sub
__________________________________________________ __
Function LastRow(sh As Worksheet)
On Error Resume Next
LastRow = sh.Cells.Find(What:="*", _
after:=sh.Range("B0"), _
lookat:=xlPart, _
LookIn:=xlValues, _
searchorder:=xlByRows, _
searchdirection:=xlPrevious, _
MatchCase:=False).Row

On Error GoTo 0
End Function
__________________________________________________ _

Public Sub ProcessSingle1(ws As Worksheet, WS2 As Worksheet, Str As String)

Dim LRow As Long
LRow = LastRow(WS2)
End Sub
__________________________________________________ _

Sub test1()
ActiveCell.Activate
Dim ws As Worksheet
Dim WS2 As Worksheet
Dim Str As String



'UNSCHEDULED
Set ws = Sheets("Unsc.")
Set WS2 = Sheets("Print281")
Str = "81"
Call ProcessSingle(ws, WS2, Str)

End Sub
__________________________________________________ _



sebastienm

'LastRow' Function not working
 
Hi,
To look for the last row of data in a column, say column B of sheet Wsh
LastRow = Wsh.Range("B65536").End(xlup).Row
It assumes data stop before row 65536.
It is the same as manually selecting B65536 and doing a CTRL+ArrowKeyUP
--
Regards,
Sébastien


"Randy Reese" wrote:


This is basically what I have. It was working at one time. Not sure why now.


__________________________________________________ __

Private Sub btnProcess_Click()
btnProcess.Enabled = False

Call test1

End Sub
__________________________________________________ __
Function LastRow(sh As Worksheet)
On Error Resume Next
LastRow = sh.Cells.Find(What:="*", _
after:=sh.Range("B0"), _
lookat:=xlPart, _
LookIn:=xlValues, _
searchorder:=xlByRows, _
searchdirection:=xlPrevious, _
MatchCase:=False).Row

On Error GoTo 0
End Function
__________________________________________________ _

Public Sub ProcessSingle1(ws As Worksheet, WS2 As Worksheet, Str As String)

Dim LRow As Long
LRow = LastRow(WS2)
End Sub
__________________________________________________ _

Sub test1()
ActiveCell.Activate
Dim ws As Worksheet
Dim WS2 As Worksheet
Dim Str As String



'UNSCHEDULED
Set ws = Sheets("Unsc.")
Set WS2 = Sheets("Print281")
Str = "81"
Call ProcessSingle(ws, WS2, Str)

End Sub
__________________________________________________ _




Rob van Gelder[_4_]

'LastRow' Function not working
 
Range("B0") is not a valid cell reference.
It will have to be a named range if it's going to work.


--
Rob van Gelder - http://www.vangelder.co.nz/excel


"Randy Reese" wrote in message
et...

This is basically what I have. It was working at one time. Not sure why

now.


__________________________________________________ __

Private Sub btnProcess_Click()
btnProcess.Enabled = False

Call test1

End Sub
__________________________________________________ __
Function LastRow(sh As Worksheet)
On Error Resume Next
LastRow = sh.Cells.Find(What:="*", _
after:=sh.Range("B0"), _
lookat:=xlPart, _
LookIn:=xlValues, _
searchorder:=xlByRows, _
searchdirection:=xlPrevious, _
MatchCase:=False).Row

On Error GoTo 0
End Function
__________________________________________________ _

Public Sub ProcessSingle1(ws As Worksheet, WS2 As Worksheet, Str As

String)

Dim LRow As Long
LRow = LastRow(WS2)
End Sub
__________________________________________________ _

Sub test1()
ActiveCell.Activate
Dim ws As Worksheet
Dim WS2 As Worksheet
Dim Str As String



'UNSCHEDULED
Set ws = Sheets("Unsc.")
Set WS2 = Sheets("Print281")
Str = "81"
Call ProcessSingle(ws, WS2, Str)

End Sub
__________________________________________________ _





John Green[_4_]

'LastRow' Function not working
 
This method for finding the last row containing data should start its search
in the A1 cell.

What does B0 represent. Is it a name? If so, it should refer to A1.

Try replacing B0 with A1.

John Green



"Randy Reese" wrote in message
et...

This is basically what I have. It was working at one time. Not sure why

now.


__________________________________________________ __

Private Sub btnProcess_Click()
btnProcess.Enabled = False

Call test1

End Sub
__________________________________________________ __
Function LastRow(sh As Worksheet)
On Error Resume Next
LastRow = sh.Cells.Find(What:="*", _
after:=sh.Range("B0"), _
lookat:=xlPart, _
LookIn:=xlValues, _
searchorder:=xlByRows, _
searchdirection:=xlPrevious, _
MatchCase:=False).Row

On Error GoTo 0
End Function
__________________________________________________ _

Public Sub ProcessSingle1(ws As Worksheet, WS2 As Worksheet, Str As

String)

Dim LRow As Long
LRow = LastRow(WS2)
End Sub
__________________________________________________ _

Sub test1()
ActiveCell.Activate
Dim ws As Worksheet
Dim WS2 As Worksheet
Dim Str As String



'UNSCHEDULED
Set ws = Sheets("Unsc.")
Set WS2 = Sheets("Print281")
Str = "81"
Call ProcessSingle(ws, WS2, Str)

End Sub
__________________________________________________ _





Tom Ogilvy

'LastRow' Function not working
 
Change
after:=sh.Range("B0"),

to
after:=sh.Range("IV65536"),

--
Regards
Tom Ogilvy


"Randy Reese" wrote in message
et...

This is basically what I have. It was working at one time. Not sure why

now.


__________________________________________________ __

Private Sub btnProcess_Click()
btnProcess.Enabled = False

Call test1

End Sub
__________________________________________________ __
Function LastRow(sh As Worksheet)
On Error Resume Next
LastRow = sh.Cells.Find(What:="*", _
after:=sh.Range("B0"), _
lookat:=xlPart, _
LookIn:=xlValues, _
searchorder:=xlByRows, _
searchdirection:=xlPrevious, _
MatchCase:=False).Row

On Error GoTo 0
End Function
__________________________________________________ _

Public Sub ProcessSingle1(ws As Worksheet, WS2 As Worksheet, Str As

String)

Dim LRow As Long
LRow = LastRow(WS2)
End Sub
__________________________________________________ _

Sub test1()
ActiveCell.Activate
Dim ws As Worksheet
Dim WS2 As Worksheet
Dim Str As String



'UNSCHEDULED
Set ws = Sheets("Unsc.")
Set WS2 = Sheets("Print281")
Str = "81"
Call ProcessSingle(ws, WS2, Str)

End Sub
__________________________________________________ _






All times are GMT +1. The time now is 08:13 PM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com