WHY OH WHY DOESN'T THIS WORK!!!!!

  • Thread starter Thread starter WhytheQ
  • Start date Start date
W

WhytheQ

I have this bit of code:


Public InvoiceRange As Range

Sub SelectDataRow()
'finds the last used row in the sheet that the user presently
has active
Dim LastUsedRow As Integer
LastUsedRow = ActiveSheet.Cells(Rows.Count, 8).End(xlUp).Row


'get the user to select a row of data for moving to the Log
Set InvoiceRange = Application.InputBox("Either: " & vbCrLf & _
"1.Confirm the present selection by
hitting OK" & vbCrLf & _
"2.Select a cell in another row and hit
OK" & vbCrLf & _
"3.Hit CANCEL to stop the macro here", _
"RELEVANT PAYMENT INFORMATION", "A" & _
LastUsedRow & ":L" & LastUsedRow, , , , ,
8)


'if nothing has been selected on the activesheet then this is
flagged to the user
If InvoiceRange Is Nothing Then
MsgBox "No cells on the ACTIVESHEET have been selected"
End If

End Sub


It doesn't seem to always work!! When it hits the "Set InvoiceRange
=..." line it sometimes works, and sometimes fails. The error is Object
Required.
I realise that if nothing is selected when the Inputbox method is used
then this is the correct error but even when I select a cell or range
on the activesheet the error can occur.

SOMEBODY PLEASE HELP AS I'M REALLY BANGING MY HEAD AGAINST A BRICK WALL
WITH THIS ONE!!!

Any help greatly appreciated,
Jason.
 
Use On Error Resume Next Before the Set command. When you Click Cancel,
then the Input Box returns false, which is not an object. Then your
check to see if InputRange is nothing should work correctly

Charles Chickering
 
Just to add an example:

Dim InvoiceRange as range
....

set InvoiceRange = nothing
on error resume next
set invoicerange = application.inputbox(Prompt:="long string", type:=8)
on error goto 0

if invoicerange is nothing then
'cancel
else
'not cancel
end if
 
Thanks very much lads.

Regards
Jason.


Dave said:
Just to add an example:

Dim InvoiceRange as range
...

set InvoiceRange = nothing
on error resume next
set invoicerange = application.inputbox(Prompt:="long string", type:=8)
on error goto 0

if invoicerange is nothing then
'cancel
else
'not cancel
end if
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Back
Top