View Single Post
  #5   Report Post  
Posted to microsoft.public.excel.programming
Tom Ogilvy Tom Ogilvy is offline
external usenet poster
 
Posts: 27,285
Default Why does Match statement in VBA fail on cells with errors in t

You are trying to subtract 1 before you determine if it is an error value
being returned. For the test you are conducting, you don't need to subtract
1



If Not IsError(Application.Match(Cell.Parent.Name _
& "!" & Cell.Address, UniqueCellAddressArray3, 0)) Then

should work

--
Regards,
Tom Ogilvy


"ExcelMonkey" wrote in message
...
Actually, this line of code is failing on everthing not just error

statements
in cells. Its a type 13 Error Mismatch. I posted this earlier today.

When
i got to the Immediate Window, I can see that the array has values in it

and
also that the match search term can be recognized.

Immediate Window
?cell.Parent.Name & "!" & cell.Address
Error Messages!$B$4

?UniqueCellAddressArray3(0)
Unique Formulas!$C$2

Public Cell As Range

Private Sub CheckAddressAgainstUniquelist()
If UniqueFormulasAdjustChkBx = True Then
If Not IsError(Application.Match(Cell.Parent.Name & "!" &

Cell.Address,
UniqueCellAddressArray3, 0) - 1) Then
Flag = False
Else
Flag = True
End If
Else
Flag = False
End If
End Sub




"Bernie Deitrick" wrote:

When Excel evaluates

Match(cell.Parent.Name & "!" & cell.Address

it becomes

Match(error value

Try catching the error sooner:

If Not IsError(cell.value) then
.....

HTH,
Bernie
MS Excel MVP


"ExcelMonkey" wrote in message
...
I have a line of code only that only fails when the public variable

"cell"
has an error
statement in it (i.e. Div/0, REF# #####, NAME! etc). The variable is
dimensioned as a Range.

As I am simply pulling the variables address proptery and Parent Name

into
the Match, why would these error statements matter? The idea below is

that
if the Match fails, i error handle it with the ISERROR sttm. Yet the

actual
cell errors in the spreadsheet itself seem to make this line of code

fail.
Why is that? Thanks

Not IsError(Application.Match(cell.Parent.Name & "!" & cell.Address,
UniqueCellAddressArray3, 0) - 1)