ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   "Object variable not set"?? (https://www.excelbanter.com/excel-programming/300319-object-variable-not-set.html)

Ed[_18_]

"Object variable not set"??
 
I'm using Find in:

Dim MyTarget As String
Dim rngSearch As Range
Dim thisRow As Long

<< other stuff

thisRow = ActiveCell.Row
Set rngSearch = Range("A" & thisRow & ":AA" & thisRow)
rngSearch.Select

If Selection.Find(What:=MyTarget _
, After:=ActiveCell, LookIn:=xlFormulas _
, LookAt:=xlPart, SearchOrder:=xlByRows _
, SearchDirection:=xlNext, _
MatchCase:=False).Activate Then

The IF statement generates the "Object variable or With block variable not
set" error. But I use this same code in another macro as:

ws1.Activate
rngSearch.Select
If Selection.Find(What:=strTIR _
, After:=ActiveCell, LookIn:=xlFormulas _
, LookAt:=xlPart, SearchOrder:=xlByRows _
, SearchDirection:=xlNext, _
MatchCase:=False).Activate Then
(In this case, there are two workbooks, and I have to activate the one I
want to search. In the first code, I am using only one workbook.)

Any suggestions?
Ed



Chip Pearson

"Object variable not set"??
 
Ed,

When using Find, you should write your code as follows:

Dim FoundCell As Range
Set FoundCell = Selection.Find(...)
If Not FoundCell Is Nothing Then
' text found, do something with FoundCell
Else
' text not found, handle it
End If


--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com



"Ed" wrote in message
...
I'm using Find in:

Dim MyTarget As String
Dim rngSearch As Range
Dim thisRow As Long

<< other stuff

thisRow = ActiveCell.Row
Set rngSearch = Range("A" & thisRow & ":AA" & thisRow)
rngSearch.Select

If Selection.Find(What:=MyTarget _
, After:=ActiveCell, LookIn:=xlFormulas _
, LookAt:=xlPart, SearchOrder:=xlByRows _
, SearchDirection:=xlNext, _
MatchCase:=False).Activate Then

The IF statement generates the "Object variable or With block

variable not
set" error. But I use this same code in another macro as:

ws1.Activate
rngSearch.Select
If Selection.Find(What:=strTIR _
, After:=ActiveCell, LookIn:=xlFormulas _
, LookAt:=xlPart, SearchOrder:=xlByRows _
, SearchDirection:=xlNext, _
MatchCase:=False).Activate Then
(In this case, there are two workbooks, and I have to activate

the one I
want to search. In the first code, I am using only one

workbook.)

Any suggestions?
Ed





Ed[_18_]

"Object variable not set"??
 
Chip, my code now looks like:

thisRow = ActiveCell.Row
Set rngSearch = Range("A" & thisRow & ":AA" & thisRow)
rngSearch.Select

Set rngFound = Selection.Find(What:=MyTarget _
, After:=ActiveCell, LookIn:=xlFormulas _
, LookAt:=xlPart, SearchOrder:=xlByRows _
, SearchDirection:=xlNext, _
MatchCase:=False).Activate

If rngFound Is Nothing Then
Range("A" & thisRow).EntireRow.Hidden = True
End If

I still get the "Object variable not set" error on the Set rngFound
statement???
Ed

"Chip Pearson" wrote in message
...
Ed,

When using Find, you should write your code as follows:

Dim FoundCell As Range
Set FoundCell = Selection.Find(...)
If Not FoundCell Is Nothing Then
' text found, do something with FoundCell
Else
' text not found, handle it
End If


--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com



"Ed" wrote in message
...
I'm using Find in:

Dim MyTarget As String
Dim rngSearch As Range
Dim thisRow As Long

<< other stuff

thisRow = ActiveCell.Row
Set rngSearch = Range("A" & thisRow & ":AA" & thisRow)
rngSearch.Select

If Selection.Find(What:=MyTarget _
, After:=ActiveCell, LookIn:=xlFormulas _
, LookAt:=xlPart, SearchOrder:=xlByRows _
, SearchDirection:=xlNext, _
MatchCase:=False).Activate Then

The IF statement generates the "Object variable or With block

variable not
set" error. But I use this same code in another macro as:

ws1.Activate
rngSearch.Select
If Selection.Find(What:=strTIR _
, After:=ActiveCell, LookIn:=xlFormulas _
, LookAt:=xlPart, SearchOrder:=xlByRows _
, SearchDirection:=xlNext, _
MatchCase:=False).Activate Then
(In this case, there are two workbooks, and I have to activate

the one I
want to search. In the first code, I am using only one

workbook.)

Any suggestions?
Ed







Chip Pearson

"Object variable not set"??
 
Ed,

Get rid of the Activate at the end of the Find line of code.


--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com



"Ed" wrote in message
...
Chip, my code now looks like:

thisRow = ActiveCell.Row
Set rngSearch = Range("A" & thisRow & ":AA" & thisRow)
rngSearch.Select

Set rngFound = Selection.Find(What:=MyTarget _
, After:=ActiveCell, LookIn:=xlFormulas _
, LookAt:=xlPart, SearchOrder:=xlByRows _
, SearchDirection:=xlNext, _
MatchCase:=False).Activate

If rngFound Is Nothing Then
Range("A" & thisRow).EntireRow.Hidden = True
End If

I still get the "Object variable not set" error on the Set

rngFound
statement???
Ed

"Chip Pearson" wrote in message
...
Ed,

When using Find, you should write your code as follows:

Dim FoundCell As Range
Set FoundCell = Selection.Find(...)
If Not FoundCell Is Nothing Then
' text found, do something with FoundCell
Else
' text not found, handle it
End If


--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com



"Ed" wrote in message
...
I'm using Find in:

Dim MyTarget As String
Dim rngSearch As Range
Dim thisRow As Long

<< other stuff

thisRow = ActiveCell.Row
Set rngSearch = Range("A" & thisRow & ":AA" & thisRow)
rngSearch.Select

If Selection.Find(What:=MyTarget _
, After:=ActiveCell, LookIn:=xlFormulas _
, LookAt:=xlPart, SearchOrder:=xlByRows _
, SearchDirection:=xlNext, _
MatchCase:=False).Activate Then

The IF statement generates the "Object variable or With

block
variable not
set" error. But I use this same code in another macro as:

ws1.Activate
rngSearch.Select
If Selection.Find(What:=strTIR _
, After:=ActiveCell, LookIn:=xlFormulas _
, LookAt:=xlPart, SearchOrder:=xlByRows _
, SearchDirection:=xlNext, _
MatchCase:=False).Activate Then
(In this case, there are two workbooks, and I have to

activate
the one I
want to search. In the first code, I am using only one

workbook.)

Any suggestions?
Ed









Ed[_18_]

"Object variable not set"??
 
Thanks, Chip! That was it!

Ed

"Chip Pearson" wrote in message
...
Ed,

Get rid of the Activate at the end of the Find line of code.


--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com



"Ed" wrote in message
...
Chip, my code now looks like:

thisRow = ActiveCell.Row
Set rngSearch = Range("A" & thisRow & ":AA" & thisRow)
rngSearch.Select

Set rngFound = Selection.Find(What:=MyTarget _
, After:=ActiveCell, LookIn:=xlFormulas _
, LookAt:=xlPart, SearchOrder:=xlByRows _
, SearchDirection:=xlNext, _
MatchCase:=False).Activate

If rngFound Is Nothing Then
Range("A" & thisRow).EntireRow.Hidden = True
End If

I still get the "Object variable not set" error on the Set

rngFound
statement???
Ed

"Chip Pearson" wrote in message
...
Ed,

When using Find, you should write your code as follows:

Dim FoundCell As Range
Set FoundCell = Selection.Find(...)
If Not FoundCell Is Nothing Then
' text found, do something with FoundCell
Else
' text not found, handle it
End If


--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com



"Ed" wrote in message
...
I'm using Find in:

Dim MyTarget As String
Dim rngSearch As Range
Dim thisRow As Long

<< other stuff

thisRow = ActiveCell.Row
Set rngSearch = Range("A" & thisRow & ":AA" & thisRow)
rngSearch.Select

If Selection.Find(What:=MyTarget _
, After:=ActiveCell, LookIn:=xlFormulas _
, LookAt:=xlPart, SearchOrder:=xlByRows _
, SearchDirection:=xlNext, _
MatchCase:=False).Activate Then

The IF statement generates the "Object variable or With

block
variable not
set" error. But I use this same code in another macro as:

ws1.Activate
rngSearch.Select
If Selection.Find(What:=strTIR _
, After:=ActiveCell, LookIn:=xlFormulas _
, LookAt:=xlPart, SearchOrder:=xlByRows _
, SearchDirection:=xlNext, _
MatchCase:=False).Activate Then
(In this case, there are two workbooks, and I have to

activate
the one I
want to search. In the first code, I am using only one
workbook.)

Any suggestions?
Ed












All times are GMT +1. The time now is 01:40 PM.

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