ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   "Object Variable or With Block Variable Not Set" error help request (https://www.excelbanter.com/excel-programming/332780-object-variable-block-variable-not-set-error-help-request.html)

Ken Loomis

"Object Variable or With Block Variable Not Set" error help request
 
I am getting a "Object Variable or With Block Variable Not Set" error in
the following line from the code below:

FoundInRow = Worksheets("Classes").Columns("C").Find(EnteredCRN , _
LookIn:=xlValues, lookat:=xlWhole).Row

I just don't do enough of this Excel VBA programming to be able to figure
that out. Can someone please help?

Thanks,
Ken



Sub FindCRN()
' On Error GoTo errorHandler
Dim EnteredCRN As String
Dim FoundInRow As Integer

EnteredCRN = Worksheets("Enter Data").Range("B4").Value
MsgBox ("EnteredCRN = " & EnteredCRN)
FoundInRow = Worksheets("Classes").Columns("C").Find(EnteredCRN , _
LookIn:=xlValues, lookat:=xlWhole).Row
MsgBox ("FoundInRow = " & FoundInRow)
Sheets("Enter Data").Range("B7").Value = Sheets("Classes").Range("A" &
FoundInRow)
Sheets("Enter Data").Range("B8").Value = Sheets("Classes").Range("B" &
FoundInRow)
Sheets("Enter Data").Range("B9").Value = Sheets("Classes").Range("F" &
FoundInRow)
Sheets("Enter Data").Range("B10").Value = Sheets("Classes").Range("H" &
FoundInRow)
Sheets("Enter Data").Range("B11").Value = Sheets("Classes").Range("I" &
FoundInRow)
Sheets("Enter Data").Range("B5").Value = Sheets("Classes").Range("D" &
FoundInRow)

End
errorHandler:
MsgBox "That CRN was not found......Please try again")
End Sub



Tom Ogilvy

"Object Variable or With Block Variable Not Set" error help request
 
Dim rng as Range

set rng = Worksheets("Classes").Columns("C").Find(EnteredCRN , _
LookIn:=xlValues, lookat:=xlWhole)
if not rng is nothing then
FoundInRow = rng.row
else
msgbox EnteredCRN & " was not found"
exit sub
End sub

--
regards,
Tom Ogilvy


"Ken Loomis" wrote in message
...
I am getting a "Object Variable or With Block Variable Not Set" error in
the following line from the code below:

FoundInRow = Worksheets("Classes").Columns("C").Find(EnteredCRN , _
LookIn:=xlValues, lookat:=xlWhole).Row

I just don't do enough of this Excel VBA programming to be able to figure
that out. Can someone please help?

Thanks,
Ken



Sub FindCRN()
' On Error GoTo errorHandler
Dim EnteredCRN As String
Dim FoundInRow As Integer

EnteredCRN = Worksheets("Enter Data").Range("B4").Value
MsgBox ("EnteredCRN = " & EnteredCRN)
FoundInRow = Worksheets("Classes").Columns("C").Find(EnteredCRN , _
LookIn:=xlValues, lookat:=xlWhole).Row
MsgBox ("FoundInRow = " & FoundInRow)
Sheets("Enter Data").Range("B7").Value = Sheets("Classes").Range("A" &
FoundInRow)
Sheets("Enter Data").Range("B8").Value = Sheets("Classes").Range("B" &
FoundInRow)
Sheets("Enter Data").Range("B9").Value = Sheets("Classes").Range("F" &
FoundInRow)
Sheets("Enter Data").Range("B10").Value = Sheets("Classes").Range("H"

&
FoundInRow)
Sheets("Enter Data").Range("B11").Value = Sheets("Classes").Range("I"

&
FoundInRow)
Sheets("Enter Data").Range("B5").Value = Sheets("Classes").Range("D" &
FoundInRow)

End
errorHandler:
MsgBox "That CRN was not found......Please try again")
End Sub





jjk

"Object Variable or With Block Variable Not Set" error help request
 
..Row returns a Range object.
Try using set:
Use the .Row property of the range that is returned.
If you declare declare the variables then the VBE will give you
autocomplete options. It really helps in exploring the VBA.

Dim FoundInRow as Range
Set FoundInRow = Worksheets("Classes").Columns(*"C").Find(EnteredCR N,
_
LookIn:=xlValues, lookat:=xlWhole).Row
MsgBox ("FoundInRow = " & FoundInRow.Row)

Regards,
Jayant


Tom Ogilvy

"Object Variable or With Block Variable Not Set" error help request
 
You can't set a range variable to take on a Long or Integer value. Set
requires an object. Also Find isn't always successful (the case here) so
you have to check if it was successful.

Dim FoundInRow as Long
Dim rng as Range
Set rng = Worksheets("Classes").Columns(*"C").Find(EnteredCR N, _
LookIn:=xlValues, lookat:=xlWhole)
' now check if the CRN was found
if not rng is nothing then
Foundrow = rng.row
MsgBox ("FoundInRow = " & FoundRow)
Else
msgbox EnteredCRN & " not found"
End If

--
Regards,
Tom Ogilvy


"jjk" wrote in message
ups.com...
..Row returns a Range object.
Try using set:
Use the .Row property of the range that is returned.
If you declare declare the variables then the VBE will give you
autocomplete options. It really helps in exploring the VBA.

Dim FoundInRow as Range
Set FoundInRow = Worksheets("Classes").Columns(*"C").Find(EnteredCR N,
_
LookIn:=xlValues, lookat:=xlWhole).Row
MsgBox ("FoundInRow = " & FoundInRow.Row)

Regards,
Jayant



Bob Phillips[_6_]

"Object Variable or With Block Variable Not Set" error help request
 
Ken,

It isn't finding it. Try this

Sub FindCRN()
' On Error GoTo errorHandler
Dim EnteredCRN As String
Dim FoundInRow As Integer

EnteredCRN = Worksheets("Enter Data").Range("B4").Value
MsgBox ("EnteredCRN = " & EnteredCRN)
On Error Resume Next
FoundInRow = Worksheets("Classes").Columns("C").Find(EnteredCRN , _
LookIn:=xlValues, lookat:=xlWhole).Row
On Error GoTo 0
If FoundInRow = 0 Then
GoTo errorHandler
Else
MsgBox ("FoundInRow = " & FoundInRow)
Sheets("Enter Data").Range("B7").Value = Sheets("Classes").Range("A"
& FoundInRow)
Sheets("Enter Data").Range("B8").Value = Sheets("Classes").Range("B"
& FoundInRow)
Sheets("Enter Data").Range("B9").Value = Sheets("Classes").Range("F"
& FoundInRow)
Sheets("Enter Data").Range("B10").Value =
Sheets("Classes").Range("H" & FoundInRow)
Sheets("Enter Data").Range("B11").Value =
Sheets("Classes").Range("I" & FoundInRow)
Sheets("Enter Data").Range("B5").Value = Sheets("Classes").Range("D"
& FoundInRow)
End
End If

errorHandler:
MsgBox "That CRN was not found......Please try again"
End Sub



--

HTH

RP
(remove nothere from the email address if mailing direct)


"Ken Loomis" wrote in message
...
I am getting a "Object Variable or With Block Variable Not Set" error in
the following line from the code below:

FoundInRow = Worksheets("Classes").Columns("C").Find(EnteredCRN , _
LookIn:=xlValues, lookat:=xlWhole).Row

I just don't do enough of this Excel VBA programming to be able to figure
that out. Can someone please help?

Thanks,
Ken



Sub FindCRN()
' On Error GoTo errorHandler
Dim EnteredCRN As String
Dim FoundInRow As Integer

EnteredCRN = Worksheets("Enter Data").Range("B4").Value
MsgBox ("EnteredCRN = " & EnteredCRN)
FoundInRow = Worksheets("Classes").Columns("C").Find(EnteredCRN , _
LookIn:=xlValues, lookat:=xlWhole).Row
MsgBox ("FoundInRow = " & FoundInRow)
Sheets("Enter Data").Range("B7").Value = Sheets("Classes").Range("A" &
FoundInRow)
Sheets("Enter Data").Range("B8").Value = Sheets("Classes").Range("B" &
FoundInRow)
Sheets("Enter Data").Range("B9").Value = Sheets("Classes").Range("F" &
FoundInRow)
Sheets("Enter Data").Range("B10").Value = Sheets("Classes").Range("H"

&
FoundInRow)
Sheets("Enter Data").Range("B11").Value = Sheets("Classes").Range("I"

&
FoundInRow)
Sheets("Enter Data").Range("B5").Value = Sheets("Classes").Range("D" &
FoundInRow)

End
errorHandler:
MsgBox "That CRN was not found......Please try again")
End Sub





Ken Loomis

"Object Variable or With Block Variable Not Set" error help request
 
Thanks, Tom. That did the trick, I think. Well, it at least got me further
along.

It will find the CRN as long as I paste it the worksheet that contains the
database into the cell on the search page.

However, if I type that CRN in, which is what we need to do, it does not
find.

Any ideas what could cause that?

Thanks,
Ken

PS. Although I keep trying this because I really want to learn this VBA
stuff, at some point I wonder if it isn't just easier, though far less
elegant I'm sure, to right a binary search in VBA.


"Tom Ogilvy" wrote in message
...
Dim rng as Range

set rng = Worksheets("Classes").Columns("C").Find(EnteredCRN , _
LookIn:=xlValues, lookat:=xlWhole)
if not rng is nothing then
FoundInRow = rng.row
else
msgbox EnteredCRN & " was not found"
exit sub
End sub

--
regards,
Tom Ogilvy


"Ken Loomis" wrote in message
...
I am getting a "Object Variable or With Block Variable Not Set" error in
the following line from the code below:

FoundInRow = Worksheets("Classes").Columns("C").Find(EnteredCRN , _
LookIn:=xlValues, lookat:=xlWhole).Row

I just don't do enough of this Excel VBA programming to be able to figure
that out. Can someone please help?

Thanks,
Ken



Sub FindCRN()
' On Error GoTo errorHandler
Dim EnteredCRN As String
Dim FoundInRow As Integer

EnteredCRN = Worksheets("Enter Data").Range("B4").Value
MsgBox ("EnteredCRN = " & EnteredCRN)
FoundInRow = Worksheets("Classes").Columns("C").Find(EnteredCRN , _
LookIn:=xlValues, lookat:=xlWhole).Row
MsgBox ("FoundInRow = " & FoundInRow)
Sheets("Enter Data").Range("B7").Value = Sheets("Classes").Range("A"
&
FoundInRow)
Sheets("Enter Data").Range("B8").Value = Sheets("Classes").Range("B"
&
FoundInRow)
Sheets("Enter Data").Range("B9").Value = Sheets("Classes").Range("F"
&
FoundInRow)
Sheets("Enter Data").Range("B10").Value = Sheets("Classes").Range("H"

&
FoundInRow)
Sheets("Enter Data").Range("B11").Value = Sheets("Classes").Range("I"

&
FoundInRow)
Sheets("Enter Data").Range("B5").Value = Sheets("Classes").Range("D"
&
FoundInRow)

End
errorHandler:
MsgBox "That CRN was not found......Please try again")
End Sub







Ken Loomis

I fixed it "Object Variable or With Block Variable Not Set" error help request
 
I changed that search line to:

Set rng = Worksheets("Classes").Columns("C").Find(EnteredCRN , _
LookIn:=xlValues, lookat:=xlPart, MatchCase:=False)


and it works now. I had tried removing the "lookat:=xlWhole" think that the
default was 'xlPart' but I guess not.

Thanks for all the help. I'm sure I'll be needing more real soon.

Ken


"Ken Loomis" wrote in message
...
Thanks, Tom. That did the trick, I think. Well, it at least got me further
along.

It will find the CRN as long as I paste it the worksheet that contains the
database into the cell on the search page.

However, if I type that CRN in, which is what we need to do, it does not
find.

Any ideas what could cause that?

Thanks,
Ken

PS. Although I keep trying this because I really want to learn this VBA
stuff, at some point I wonder if it isn't just easier, though far less
elegant I'm sure, to right a binary search in VBA.


"Tom Ogilvy" wrote in message
...
Dim rng as Range

set rng = Worksheets("Classes").Columns("C").Find(EnteredCRN , _
LookIn:=xlValues, lookat:=xlWhole)
if not rng is nothing then
FoundInRow = rng.row
else
msgbox EnteredCRN & " was not found"
exit sub
End sub

--
regards,
Tom Ogilvy


"Ken Loomis" wrote in message
...
I am getting a "Object Variable or With Block Variable Not Set" error
in
the following line from the code below:

FoundInRow = Worksheets("Classes").Columns("C").Find(EnteredCRN , _
LookIn:=xlValues, lookat:=xlWhole).Row

I just don't do enough of this Excel VBA programming to be able to
figure
that out. Can someone please help?

Thanks,
Ken



Sub FindCRN()
' On Error GoTo errorHandler
Dim EnteredCRN As String
Dim FoundInRow As Integer

EnteredCRN = Worksheets("Enter Data").Range("B4").Value
MsgBox ("EnteredCRN = " & EnteredCRN)
FoundInRow = Worksheets("Classes").Columns("C").Find(EnteredCRN , _
LookIn:=xlValues, lookat:=xlWhole).Row
MsgBox ("FoundInRow = " & FoundInRow)
Sheets("Enter Data").Range("B7").Value = Sheets("Classes").Range("A"
&
FoundInRow)
Sheets("Enter Data").Range("B8").Value = Sheets("Classes").Range("B"
&
FoundInRow)
Sheets("Enter Data").Range("B9").Value = Sheets("Classes").Range("F"
&
FoundInRow)
Sheets("Enter Data").Range("B10").Value =
Sheets("Classes").Range("H"

&
FoundInRow)
Sheets("Enter Data").Range("B11").Value =
Sheets("Classes").Range("I"

&
FoundInRow)
Sheets("Enter Data").Range("B5").Value = Sheets("Classes").Range("D"
&
FoundInRow)

End
errorHandler:
MsgBox "That CRN was not found......Please try again")
End Sub









Tom Ogilvy

I fixed it "Object Variable or With Block Variable Not Set" error help request
 
Sounds like your data is dirty. Aren't these treatment or condition codes
which should be unique as a whole. Seams like you wouldn't want to search
for just a part of the string.

--
Regards,
Tom Ogilvy

"Ken Loomis" wrote in message
...
I changed that search line to:

Set rng = Worksheets("Classes").Columns("C").Find(EnteredCRN , _
LookIn:=xlValues, lookat:=xlPart, MatchCase:=False)


and it works now. I had tried removing the "lookat:=xlWhole" think that

the
default was 'xlPart' but I guess not.

Thanks for all the help. I'm sure I'll be needing more real soon.

Ken


"Ken Loomis" wrote in message
...
Thanks, Tom. That did the trick, I think. Well, it at least got me

further
along.

It will find the CRN as long as I paste it the worksheet that contains

the
database into the cell on the search page.

However, if I type that CRN in, which is what we need to do, it does not
find.

Any ideas what could cause that?

Thanks,
Ken

PS. Although I keep trying this because I really want to learn this VBA
stuff, at some point I wonder if it isn't just easier, though far less
elegant I'm sure, to right a binary search in VBA.


"Tom Ogilvy" wrote in message
...
Dim rng as Range

set rng = Worksheets("Classes").Columns("C").Find(EnteredCRN , _
LookIn:=xlValues, lookat:=xlWhole)
if not rng is nothing then
FoundInRow = rng.row
else
msgbox EnteredCRN & " was not found"
exit sub
End sub

--
regards,
Tom Ogilvy


"Ken Loomis" wrote in message
...
I am getting a "Object Variable or With Block Variable Not Set" error
in
the following line from the code below:

FoundInRow = Worksheets("Classes").Columns("C").Find(EnteredCRN , _
LookIn:=xlValues, lookat:=xlWhole).Row

I just don't do enough of this Excel VBA programming to be able to
figure
that out. Can someone please help?

Thanks,
Ken



Sub FindCRN()
' On Error GoTo errorHandler
Dim EnteredCRN As String
Dim FoundInRow As Integer

EnteredCRN = Worksheets("Enter Data").Range("B4").Value
MsgBox ("EnteredCRN = " & EnteredCRN)
FoundInRow = Worksheets("Classes").Columns("C").Find(EnteredCRN , _
LookIn:=xlValues, lookat:=xlWhole).Row
MsgBox ("FoundInRow = " & FoundInRow)
Sheets("Enter Data").Range("B7").Value =

Sheets("Classes").Range("A"
&
FoundInRow)
Sheets("Enter Data").Range("B8").Value =

Sheets("Classes").Range("B"
&
FoundInRow)
Sheets("Enter Data").Range("B9").Value =

Sheets("Classes").Range("F"
&
FoundInRow)
Sheets("Enter Data").Range("B10").Value =
Sheets("Classes").Range("H"
&
FoundInRow)
Sheets("Enter Data").Range("B11").Value =
Sheets("Classes").Range("I"
&
FoundInRow)
Sheets("Enter Data").Range("B5").Value =

Sheets("Classes").Range("D"
&
FoundInRow)

End
errorHandler:
MsgBox "That CRN was not found......Please try again")
End Sub











Ken Loomis

I fixed it "Object Variable or With Block Variable Not Set" error help request
 
I agree and if I had more control over the data, I'd clean it up but I have
no control over it and the person that controls it doesn't see a need to
clean it up. Kind of a kludge work around I know, but it works for the
people that need to actually print the forms, so I guess I'll just have to
live with it.

Thanks for all your help, Tom. You always make my life so much easier.

Ken Loomis

"Tom Ogilvy" wrote in message
...
Sounds like your data is dirty. Aren't these treatment or condition codes
which should be unique as a whole. Seams like you wouldn't want to search
for just a part of the string.

--
Regards,
Tom Ogilvy

"Ken Loomis" wrote in message
...
I changed that search line to:

Set rng = Worksheets("Classes").Columns("C").Find(EnteredCRN , _
LookIn:=xlValues, lookat:=xlPart, MatchCase:=False)


and it works now. I had tried removing the "lookat:=xlWhole" think that

the
default was 'xlPart' but I guess not.

Thanks for all the help. I'm sure I'll be needing more real soon.

Ken


"Ken Loomis" wrote in message
...
Thanks, Tom. That did the trick, I think. Well, it at least got me

further
along.

It will find the CRN as long as I paste it the worksheet that contains

the
database into the cell on the search page.

However, if I type that CRN in, which is what we need to do, it does
not
find.

Any ideas what could cause that?

Thanks,
Ken

PS. Although I keep trying this because I really want to learn this VBA
stuff, at some point I wonder if it isn't just easier, though far less
elegant I'm sure, to right a binary search in VBA.


"Tom Ogilvy" wrote in message
...
Dim rng as Range

set rng = Worksheets("Classes").Columns("C").Find(EnteredCRN , _
LookIn:=xlValues, lookat:=xlWhole)
if not rng is nothing then
FoundInRow = rng.row
else
msgbox EnteredCRN & " was not found"
exit sub
End sub

--
regards,
Tom Ogilvy


"Ken Loomis" wrote in message
...
I am getting a "Object Variable or With Block Variable Not Set"
error
in
the following line from the code below:

FoundInRow = Worksheets("Classes").Columns("C").Find(EnteredCRN ,
_
LookIn:=xlValues, lookat:=xlWhole).Row

I just don't do enough of this Excel VBA programming to be able to
figure
that out. Can someone please help?

Thanks,
Ken



Sub FindCRN()
' On Error GoTo errorHandler
Dim EnteredCRN As String
Dim FoundInRow As Integer

EnteredCRN = Worksheets("Enter Data").Range("B4").Value
MsgBox ("EnteredCRN = " & EnteredCRN)
FoundInRow = Worksheets("Classes").Columns("C").Find(EnteredCRN ,
_
LookIn:=xlValues, lookat:=xlWhole).Row
MsgBox ("FoundInRow = " & FoundInRow)
Sheets("Enter Data").Range("B7").Value =

Sheets("Classes").Range("A"
&
FoundInRow)
Sheets("Enter Data").Range("B8").Value =

Sheets("Classes").Range("B"
&
FoundInRow)
Sheets("Enter Data").Range("B9").Value =

Sheets("Classes").Range("F"
&
FoundInRow)
Sheets("Enter Data").Range("B10").Value =
Sheets("Classes").Range("H"
&
FoundInRow)
Sheets("Enter Data").Range("B11").Value =
Sheets("Classes").Range("I"
&
FoundInRow)
Sheets("Enter Data").Range("B5").Value =

Sheets("Classes").Range("D"
&
FoundInRow)

End
errorHandler:
MsgBox "That CRN was not found......Please try again")
End Sub














All times are GMT +1. The time now is 08:47 AM.

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