Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 2,510
Default Error Trap not working

I suspect that you might be changing worksheets in the processing and not
changing back to the original sheet but that is only a guess. However, you
would be better to use code like the following to identify the Found/Not
found.

The space and underscore at the end of lines is simply the syntax used to
insert a break in what is otherwise a full line of code.

Feel free to get back to me if you are still having problems.

Sub FindnProcess()

Dim rngA As Range 'Range of cells in column A
Dim rngB As Range 'Range of cells in column B
Dim c As Range 'Each cell in column A
Dim foundCell As Range 'Cell in col B where found

With Sheets("Sheet1")
Set rngA = .Range(.Cells(2, "A"), _
.Cells(.Rows.Count, "A").End(xlUp))

Set rngB = .Range(.Cells(2, "B"), _
.Cells(.Rows.Count, "B").End(xlUp))
End With

For Each c In rngA
Set foundCell = rngB.Find(What:=c.Value, _
LookIn:=xlFormulas, _
LookAt:=xlWhole, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlNext, _
MatchCase:=False, _
SearchFormat:=False)

If Not foundCell Is Nothing Then
'Value has been found.
'Insert your found code here
'In lieu of msgbox
MsgBox "Found " & c.Value
Else
'Value not found.
'Insert your found code here
'In lieu of msgbox
MsgBox "Not found " & c.Value
End If
Next c

End Sub

--
Regards,

OssieMac


"Steve C" wrote:

I have a spreadsheet with about 350 names in column A. These are to be
compared with a much longer list of names (about 3100) in col. B. My thought
process is to select the first person in Col A, then search col. B to see if
there is a match. If so, run some code based on the fact that there's a
match. If the name is not found in col. B, run some other code to deal with
that. Then move to the next cell in col. A and perform the search again.
This would continue for all the names in col. A.

When a match is not found in col. B, I'm using an error trap to deal with
that situation. The problem is that I'm getting a run-time error 91 ("Object
variable or With block variable not set") instead of the error-handler code
being executed. I do not have any With blocks in my code. My approach in my
code is based on the Edit Find command, where Excel searches only a
selected range of cells for a match.

Here is my code so far:

Sub CompareColumns()

Dim ColACount as Integer
Dim ColAAddress As String, ColAName As String, ColBRange as String

'Code here that determines number of names in Col. A (ColACount)
'Code here that names the range of cells in Col. B as ColBRange


Range("A1").Select

For x = 1 To ColACount

ColAAddress = ActiveCell.Address
ColAName = ActiveCell.Value


Range("ColBRange").Select 'selects all entries in col. B so that only that
range is searched

On Error GoTo DoThisInstead 'if name not found, run this code instead

Selection.Find(What:=ColAName, After:= _
ActiveCell, LookIn:=xlValues, LookAt:=xlWhole,
SearchOrder:=xlByColumns, _
SearchDirection:=xlNext, MatchCase:=False,
SearchFormat:=False).Activate

'Run code here where match is found, then
Range(ColAAddress).Offset(1, 0).Select 'the next cell in col. A is
selected
GoTo Keepgoing

DoThisInstead:
'Run code here where match is not found, then
Range(ColAAddress).Offset(1, 0).Select 'the next cell in col. A is
selected

Keepgoing:
Next x
End Sub

The code runs smoothly for matches that are found. In addition, the error
handling code fires properly for the first entry in col. A, which has no col.
B match. But for subsequent non-matches, instead of the error handler code
running, I get the "Object variable or With block variable not set" error.
Again, I do not have any With blocks in my code. Very strange that it works
for the first non-match, but not for ones after that!

I'm sure there's a better way for me to compare the columns. Thanks for any
assistance you can give me.
--
Steve C

  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 2,510
Default Error Trap not working

I should have told you that you use foundCell in lieu of a range and cell
address when you want info from the cell.

Examples:-
foundCell.Value
foundCell.Address

The same for c but there are examples of that in the MsgBox.

--
Regards,

OssieMac


"OssieMac" wrote:

I suspect that you might be changing worksheets in the processing and not
changing back to the original sheet but that is only a guess. However, you
would be better to use code like the following to identify the Found/Not
found.

The space and underscore at the end of lines is simply the syntax used to
insert a break in what is otherwise a full line of code.

Feel free to get back to me if you are still having problems.

Sub FindnProcess()

Dim rngA As Range 'Range of cells in column A
Dim rngB As Range 'Range of cells in column B
Dim c As Range 'Each cell in column A
Dim foundCell As Range 'Cell in col B where found

With Sheets("Sheet1")
Set rngA = .Range(.Cells(2, "A"), _
.Cells(.Rows.Count, "A").End(xlUp))

Set rngB = .Range(.Cells(2, "B"), _
.Cells(.Rows.Count, "B").End(xlUp))
End With

For Each c In rngA
Set foundCell = rngB.Find(What:=c.Value, _
LookIn:=xlFormulas, _
LookAt:=xlWhole, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlNext, _
MatchCase:=False, _
SearchFormat:=False)

If Not foundCell Is Nothing Then
'Value has been found.
'Insert your found code here
'In lieu of msgbox
MsgBox "Found " & c.Value
Else
'Value not found.
'Insert your found code here
'In lieu of msgbox
MsgBox "Not found " & c.Value
End If
Next c

End Sub

--
Regards,

OssieMac


"Steve C" wrote:

I have a spreadsheet with about 350 names in column A. These are to be
compared with a much longer list of names (about 3100) in col. B. My thought
process is to select the first person in Col A, then search col. B to see if
there is a match. If so, run some code based on the fact that there's a
match. If the name is not found in col. B, run some other code to deal with
that. Then move to the next cell in col. A and perform the search again.
This would continue for all the names in col. A.

When a match is not found in col. B, I'm using an error trap to deal with
that situation. The problem is that I'm getting a run-time error 91 ("Object
variable or With block variable not set") instead of the error-handler code
being executed. I do not have any With blocks in my code. My approach in my
code is based on the Edit Find command, where Excel searches only a
selected range of cells for a match.

Here is my code so far:

Sub CompareColumns()

Dim ColACount as Integer
Dim ColAAddress As String, ColAName As String, ColBRange as String

'Code here that determines number of names in Col. A (ColACount)
'Code here that names the range of cells in Col. B as ColBRange


Range("A1").Select

For x = 1 To ColACount

ColAAddress = ActiveCell.Address
ColAName = ActiveCell.Value


Range("ColBRange").Select 'selects all entries in col. B so that only that
range is searched

On Error GoTo DoThisInstead 'if name not found, run this code instead

Selection.Find(What:=ColAName, After:= _
ActiveCell, LookIn:=xlValues, LookAt:=xlWhole,
SearchOrder:=xlByColumns, _
SearchDirection:=xlNext, MatchCase:=False,
SearchFormat:=False).Activate

'Run code here where match is found, then
Range(ColAAddress).Offset(1, 0).Select 'the next cell in col. A is
selected
GoTo Keepgoing

DoThisInstead:
'Run code here where match is not found, then
Range(ColAAddress).Offset(1, 0).Select 'the next cell in col. A is
selected

Keepgoing:
Next x
End Sub

The code runs smoothly for matches that are found. In addition, the error
handling code fires properly for the first entry in col. A, which has no col.
B match. But for subsequent non-matches, instead of the error handler code
running, I get the "Object variable or With block variable not set" error.
Again, I do not have any With blocks in my code. Very strange that it works
for the first non-match, but not for ones after that!

I'm sure there's a better way for me to compare the columns. Thanks for any
assistance you can give me.
--
Steve C

  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 119
Default Error Trap not working

Hi, Ossie:

Thanks so much for your reply. I was able to use the following code to
avoid the error and make it do what I intended:

Sub CompareColumns()

Dim ColACount as Integer
Dim ColAAddress As String, ColAName As String, ColBRange as String

'Code here that determines number of names in Col. A (ColACount)
'Code here that names the range of cells in Col. B as ColBRange


Range("A1").Select

For x = 1 To ColACount

ColAAddress = ActiveCell.Address
ColAName = ActiveCell.Value


Range("ColBRange").Select 'selects all entries in col. B so that only that
range is searched

' ****** OLD CODE start ******
On Error GoTo DoThisInstead 'if name not found, run this code instead
Selection.Find(What:=ColAName, After:= _
ActiveCell, LookIn:=xlValues, LookAt:=xlWhole,
SearchOrder:=xlByColumns, _
SearchDirection:=xlNext, MatchCase:=False,
SearchFormat:=False).Activate
' ****** OLD CODE end *******

' ****** NEW CODE start ******
Set rng = Selection.Find(ColAName)
If Not rng Is Nothing Then
rng.Select
Else
GoTo DoThisInstead
End If
' ****** NEW CODE end ******

'Run code here where match is found, then
Range(ColAAddress).Offset(1, 0).Select 'the next cell in col. A is
selected
GoTo Keepgoing

DoThisInstead:
'Run code here where match is not found, then
Range(ColAAddress).Offset(1, 0).Select 'the next cell in col. A is
selected

Keepgoing:
Next x
End Sub

--
Steve C


"OssieMac" wrote:

I should have told you that you use foundCell in lieu of a range and cell
address when you want info from the cell.

Examples:-
foundCell.Value
foundCell.Address

The same for c but there are examples of that in the MsgBox.

--
Regards,

OssieMac


"OssieMac" wrote:

I suspect that you might be changing worksheets in the processing and not
changing back to the original sheet but that is only a guess. However, you
would be better to use code like the following to identify the Found/Not
found.

The space and underscore at the end of lines is simply the syntax used to
insert a break in what is otherwise a full line of code.

Feel free to get back to me if you are still having problems.

Sub FindnProcess()

Dim rngA As Range 'Range of cells in column A
Dim rngB As Range 'Range of cells in column B
Dim c As Range 'Each cell in column A
Dim foundCell As Range 'Cell in col B where found

With Sheets("Sheet1")
Set rngA = .Range(.Cells(2, "A"), _
.Cells(.Rows.Count, "A").End(xlUp))

Set rngB = .Range(.Cells(2, "B"), _
.Cells(.Rows.Count, "B").End(xlUp))
End With

For Each c In rngA
Set foundCell = rngB.Find(What:=c.Value, _
LookIn:=xlFormulas, _
LookAt:=xlWhole, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlNext, _
MatchCase:=False, _
SearchFormat:=False)

If Not foundCell Is Nothing Then
'Value has been found.
'Insert your found code here
'In lieu of msgbox
MsgBox "Found " & c.Value
Else
'Value not found.
'Insert your found code here
'In lieu of msgbox
MsgBox "Not found " & c.Value
End If
Next c

End Sub

--
Regards,

OssieMac


"Steve C" wrote:

I have a spreadsheet with about 350 names in column A. These are to be
compared with a much longer list of names (about 3100) in col. B. My thought
process is to select the first person in Col A, then search col. B to see if
there is a match. If so, run some code based on the fact that there's a
match. If the name is not found in col. B, run some other code to deal with
that. Then move to the next cell in col. A and perform the search again.
This would continue for all the names in col. A.

When a match is not found in col. B, I'm using an error trap to deal with
that situation. The problem is that I'm getting a run-time error 91 ("Object
variable or With block variable not set") instead of the error-handler code
being executed. I do not have any With blocks in my code. My approach in my
code is based on the Edit Find command, where Excel searches only a
selected range of cells for a match.

Here is my code so far:

Sub CompareColumns()

Dim ColACount as Integer
Dim ColAAddress As String, ColAName As String, ColBRange as String

'Code here that determines number of names in Col. A (ColACount)
'Code here that names the range of cells in Col. B as ColBRange


Range("A1").Select

For x = 1 To ColACount

ColAAddress = ActiveCell.Address
ColAName = ActiveCell.Value


Range("ColBRange").Select 'selects all entries in col. B so that only that
range is searched

On Error GoTo DoThisInstead 'if name not found, run this code instead

Selection.Find(What:=ColAName, After:= _
ActiveCell, LookIn:=xlValues, LookAt:=xlWhole,
SearchOrder:=xlByColumns, _
SearchDirection:=xlNext, MatchCase:=False,
SearchFormat:=False).Activate

'Run code here where match is found, then
Range(ColAAddress).Offset(1, 0).Select 'the next cell in col. A is
selected
GoTo Keepgoing

DoThisInstead:
'Run code here where match is not found, then
Range(ColAAddress).Offset(1, 0).Select 'the next cell in col. A is
selected

Keepgoing:
Next x
End Sub

The code runs smoothly for matches that are found. In addition, the error
handling code fires properly for the first entry in col. A, which has no col.
B match. But for subsequent non-matches, instead of the error handler code
running, I get the "Object variable or With block variable not set" error.
Again, I do not have any With blocks in my code. Very strange that it works
for the first non-match, but not for ones after that!

I'm sure there's a better way for me to compare the columns. Thanks for any
assistance you can give me.
--
Steve C

  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 2,510
Default Error Trap not working

Hi Steve,

Your code:- Set rng = Selection.Find(ColAName)

When using Find in VBA, you should set all the parameters because Excel
remembers the last parameters used in the current session whether used in the
interactive mode or in VBA code. You cannot be sure how the find parameters
have been left from previous use.

The above line of code should be:-

Set rng = Selection.Find(What:=ColAName, _
LookIn:=xlFormulas, _
LookAt:=xlWhole, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlNext, _
MatchCase:=False, _
SearchFormat:=False)

I always insert the line breaks in code like the above because it tabulates
the parameters and I find it easier to read and adjust if one of the
parameters is causing undesired results. However, that might be just the way
my mind works.


--
Regards,

OssieMac


"Steve C" wrote:

Hi, Ossie:

Thanks so much for your reply. I was able to use the following code to
avoid the error and make it do what I intended:

Sub CompareColumns()

Dim ColACount as Integer
Dim ColAAddress As String, ColAName As String, ColBRange as String

'Code here that determines number of names in Col. A (ColACount)
'Code here that names the range of cells in Col. B as ColBRange


Range("A1").Select

For x = 1 To ColACount

ColAAddress = ActiveCell.Address
ColAName = ActiveCell.Value


Range("ColBRange").Select 'selects all entries in col. B so that only that
range is searched

' ****** OLD CODE start ******
On Error GoTo DoThisInstead 'if name not found, run this code instead
Selection.Find(What:=ColAName, After:= _
ActiveCell, LookIn:=xlValues, LookAt:=xlWhole,
SearchOrder:=xlByColumns, _
SearchDirection:=xlNext, MatchCase:=False,
SearchFormat:=False).Activate
' ****** OLD CODE end *******

' ****** NEW CODE start ******
Set rng = Selection.Find(ColAName)
If Not rng Is Nothing Then
rng.Select
Else
GoTo DoThisInstead
End If
' ****** NEW CODE end ******

'Run code here where match is found, then
Range(ColAAddress).Offset(1, 0).Select 'the next cell in col. A is
selected
GoTo Keepgoing

DoThisInstead:
'Run code here where match is not found, then
Range(ColAAddress).Offset(1, 0).Select 'the next cell in col. A is
selected

Keepgoing:
Next x
End Sub

--
Steve C


"OssieMac" wrote:

I should have told you that you use foundCell in lieu of a range and cell
address when you want info from the cell.

Examples:-
foundCell.Value
foundCell.Address

The same for c but there are examples of that in the MsgBox.

--
Regards,

OssieMac


"OssieMac" wrote:

I suspect that you might be changing worksheets in the processing and not
changing back to the original sheet but that is only a guess. However, you
would be better to use code like the following to identify the Found/Not
found.

The space and underscore at the end of lines is simply the syntax used to
insert a break in what is otherwise a full line of code.

Feel free to get back to me if you are still having problems.

Sub FindnProcess()

Dim rngA As Range 'Range of cells in column A
Dim rngB As Range 'Range of cells in column B
Dim c As Range 'Each cell in column A
Dim foundCell As Range 'Cell in col B where found

With Sheets("Sheet1")
Set rngA = .Range(.Cells(2, "A"), _
.Cells(.Rows.Count, "A").End(xlUp))

Set rngB = .Range(.Cells(2, "B"), _
.Cells(.Rows.Count, "B").End(xlUp))
End With

For Each c In rngA
Set foundCell = rngB.Find(What:=c.Value, _
LookIn:=xlFormulas, _
LookAt:=xlWhole, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlNext, _
MatchCase:=False, _
SearchFormat:=False)

If Not foundCell Is Nothing Then
'Value has been found.
'Insert your found code here
'In lieu of msgbox
MsgBox "Found " & c.Value
Else
'Value not found.
'Insert your found code here
'In lieu of msgbox
MsgBox "Not found " & c.Value
End If
Next c

End Sub

--
Regards,

OssieMac


"Steve C" wrote:

I have a spreadsheet with about 350 names in column A. These are to be
compared with a much longer list of names (about 3100) in col. B. My thought
process is to select the first person in Col A, then search col. B to see if
there is a match. If so, run some code based on the fact that there's a
match. If the name is not found in col. B, run some other code to deal with
that. Then move to the next cell in col. A and perform the search again.
This would continue for all the names in col. A.

When a match is not found in col. B, I'm using an error trap to deal with
that situation. The problem is that I'm getting a run-time error 91 ("Object
variable or With block variable not set") instead of the error-handler code
being executed. I do not have any With blocks in my code. My approach in my
code is based on the Edit Find command, where Excel searches only a
selected range of cells for a match.

Here is my code so far:

Sub CompareColumns()

Dim ColACount as Integer
Dim ColAAddress As String, ColAName As String, ColBRange as String

'Code here that determines number of names in Col. A (ColACount)
'Code here that names the range of cells in Col. B as ColBRange


Range("A1").Select

For x = 1 To ColACount

ColAAddress = ActiveCell.Address
ColAName = ActiveCell.Value


Range("ColBRange").Select 'selects all entries in col. B so that only that
range is searched

On Error GoTo DoThisInstead 'if name not found, run this code instead

Selection.Find(What:=ColAName, After:= _
ActiveCell, LookIn:=xlValues, LookAt:=xlWhole,
SearchOrder:=xlByColumns, _
SearchDirection:=xlNext, MatchCase:=False,
SearchFormat:=False).Activate

'Run code here where match is found, then
Range(ColAAddress).Offset(1, 0).Select 'the next cell in col. A is
selected
GoTo Keepgoing

DoThisInstead:
'Run code here where match is not found, then
Range(ColAAddress).Offset(1, 0).Select 'the next cell in col. A is
selected

Keepgoing:
Next x
End Sub

The code runs smoothly for matches that are found. In addition, the error
handling code fires properly for the first entry in col. A, which has no col.
B match. But for subsequent non-matches, instead of the error handler code
running, I get the "Object variable or With block variable not set" error.
Again, I do not have any With blocks in my code. Very strange that it works
for the first non-match, but not for ones after that!

I'm sure there's a better way for me to compare the columns. Thanks for any
assistance you can give me.
--
Steve C

  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 119
Default Error Trap not working

Duly noted. Thank you again for your time and effort to help!
--
Steve C


"OssieMac" wrote:

Hi Steve,

Your code:- Set rng = Selection.Find(ColAName)

When using Find in VBA, you should set all the parameters because Excel
remembers the last parameters used in the current session whether used in the
interactive mode or in VBA code. You cannot be sure how the find parameters
have been left from previous use.

The above line of code should be:-

Set rng = Selection.Find(What:=ColAName, _
LookIn:=xlFormulas, _
LookAt:=xlWhole, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlNext, _
MatchCase:=False, _
SearchFormat:=False)

I always insert the line breaks in code like the above because it tabulates
the parameters and I find it easier to read and adjust if one of the
parameters is causing undesired results. However, that might be just the way
my mind works.


--
Regards,

OssieMac


"Steve C" wrote:

Hi, Ossie:

Thanks so much for your reply. I was able to use the following code to
avoid the error and make it do what I intended:

Sub CompareColumns()

Dim ColACount as Integer
Dim ColAAddress As String, ColAName As String, ColBRange as String

'Code here that determines number of names in Col. A (ColACount)
'Code here that names the range of cells in Col. B as ColBRange


Range("A1").Select

For x = 1 To ColACount

ColAAddress = ActiveCell.Address
ColAName = ActiveCell.Value


Range("ColBRange").Select 'selects all entries in col. B so that only that
range is searched

' ****** OLD CODE start ******
On Error GoTo DoThisInstead 'if name not found, run this code instead
Selection.Find(What:=ColAName, After:= _
ActiveCell, LookIn:=xlValues, LookAt:=xlWhole,
SearchOrder:=xlByColumns, _
SearchDirection:=xlNext, MatchCase:=False,
SearchFormat:=False).Activate
' ****** OLD CODE end *******

' ****** NEW CODE start ******
Set rng = Selection.Find(ColAName)
If Not rng Is Nothing Then
rng.Select
Else
GoTo DoThisInstead
End If
' ****** NEW CODE end ******

'Run code here where match is found, then
Range(ColAAddress).Offset(1, 0).Select 'the next cell in col. A is
selected
GoTo Keepgoing

DoThisInstead:
'Run code here where match is not found, then
Range(ColAAddress).Offset(1, 0).Select 'the next cell in col. A is
selected

Keepgoing:
Next x
End Sub

--
Steve C


"OssieMac" wrote:

I should have told you that you use foundCell in lieu of a range and cell
address when you want info from the cell.

Examples:-
foundCell.Value
foundCell.Address

The same for c but there are examples of that in the MsgBox.

--
Regards,

OssieMac


"OssieMac" wrote:

I suspect that you might be changing worksheets in the processing and not
changing back to the original sheet but that is only a guess. However, you
would be better to use code like the following to identify the Found/Not
found.

The space and underscore at the end of lines is simply the syntax used to
insert a break in what is otherwise a full line of code.

Feel free to get back to me if you are still having problems.

Sub FindnProcess()

Dim rngA As Range 'Range of cells in column A
Dim rngB As Range 'Range of cells in column B
Dim c As Range 'Each cell in column A
Dim foundCell As Range 'Cell in col B where found

With Sheets("Sheet1")
Set rngA = .Range(.Cells(2, "A"), _
.Cells(.Rows.Count, "A").End(xlUp))

Set rngB = .Range(.Cells(2, "B"), _
.Cells(.Rows.Count, "B").End(xlUp))
End With

For Each c In rngA
Set foundCell = rngB.Find(What:=c.Value, _
LookIn:=xlFormulas, _
LookAt:=xlWhole, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlNext, _
MatchCase:=False, _
SearchFormat:=False)

If Not foundCell Is Nothing Then
'Value has been found.
'Insert your found code here
'In lieu of msgbox
MsgBox "Found " & c.Value
Else
'Value not found.
'Insert your found code here
'In lieu of msgbox
MsgBox "Not found " & c.Value
End If
Next c

End Sub

--
Regards,

OssieMac


"Steve C" wrote:

I have a spreadsheet with about 350 names in column A. These are to be
compared with a much longer list of names (about 3100) in col. B. My thought
process is to select the first person in Col A, then search col. B to see if
there is a match. If so, run some code based on the fact that there's a
match. If the name is not found in col. B, run some other code to deal with
that. Then move to the next cell in col. A and perform the search again.
This would continue for all the names in col. A.

When a match is not found in col. B, I'm using an error trap to deal with
that situation. The problem is that I'm getting a run-time error 91 ("Object
variable or With block variable not set") instead of the error-handler code
being executed. I do not have any With blocks in my code. My approach in my
code is based on the Edit Find command, where Excel searches only a
selected range of cells for a match.

Here is my code so far:

Sub CompareColumns()

Dim ColACount as Integer
Dim ColAAddress As String, ColAName As String, ColBRange as String

'Code here that determines number of names in Col. A (ColACount)
'Code here that names the range of cells in Col. B as ColBRange


Range("A1").Select

For x = 1 To ColACount

ColAAddress = ActiveCell.Address
ColAName = ActiveCell.Value


Range("ColBRange").Select 'selects all entries in col. B so that only that
range is searched

On Error GoTo DoThisInstead 'if name not found, run this code instead

Selection.Find(What:=ColAName, After:= _
ActiveCell, LookIn:=xlValues, LookAt:=xlWhole,
SearchOrder:=xlByColumns, _
SearchDirection:=xlNext, MatchCase:=False,
SearchFormat:=False).Activate

'Run code here where match is found, then
Range(ColAAddress).Offset(1, 0).Select 'the next cell in col. A is
selected
GoTo Keepgoing

DoThisInstead:
'Run code here where match is not found, then
Range(ColAAddress).Offset(1, 0).Select 'the next cell in col. A is
selected

Keepgoing:
Next x
End Sub

The code runs smoothly for matches that are found. In addition, the error
handling code fires properly for the first entry in col. A, which has no col.
B match. But for subsequent non-matches, instead of the error handler code
running, I get the "Object variable or With block variable not set" error.
Again, I do not have any With blocks in my code. Very strange that it works
for the first non-match, but not for ones after that!

I'm sure there's a better way for me to compare the columns. Thanks for any
assistance you can give me.
--
Steve C

Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Need error trap GregR Excel Programming 4 June 14th 07 08:28 PM
Error Handling - On Error GoTo doesn't trap error successfully David Excel Programming 9 February 16th 06 05:59 PM
Error Trap TEB2 Excel Programming 2 March 15th 05 05:34 PM
Error Trap Not Working Otto Moehrbach[_6_] Excel Programming 7 April 13th 04 12:15 PM
error trap Rhonda[_3_] Excel Programming 2 October 22nd 03 07:07 PM


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

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"