runtime error 13 - type mismatch error in Excel 97 on Citrix

K

Kevin Maher

Hi

I'm getting a "runtime error 13 - type mismatch" error when running a macro
in a spreadsheet on the company network (accessed via Citrix) at the company
I work for. The line causing the error is identified below:

Range("L1").Select
Do Until ActiveCell.Value = ""
If ActiveCell.Value = 0 Then <<--- this line
Selection.EntireRow.Delete
Else
ActiveCell.Offset(1, 0).Select
End If
Loop

There is more code than this, so can supply that if required.

Citrix may be the cause of the problem because the exact same code works
fine when I open the spreadsheet on my desktop pc (using Excel 2000).

Could someone please explain to me what the problem could be, and how it
could be fixed?

Thanks and regards

Kevin Maher
 
D

Dave Peterson

If there is an error in the cell, you can get that message.

if iserror(activecell.value) then
'skip it???
else
If ActiveCell.Value = 0 Then <<--- this line
Selection.EntireRow.Delete
Else
ActiveCell.Offset(1, 0).Select
End If
end if
 
K

Kevin Maher

Thanks Dave, I tried that but it still gave the error on the same line.

It's weird how it spits the dummy when run on the network, but works fine
when run on my desktop machine. It becomes picky for no apparent reason.

I should also point out that the exact same data file is being used on both
occasions - one copy on my machine, the other on the network. Both times the
spreadsheet and data file are in the same folder.

Kevin
 
D

Dave Peterson

I've never use Citrix.

What's in the cell that causes the error?

How did you change the code?
 
L

Lewis

Hi Kevin,

It looks to me as if some of your cells do not contain numerical numbers
which is causing the crash. Excel is trying to evaluate the cell for zero
but finding a null or text value of "" instead.

A quick fix is to make sure all numbers have at minimum a zero value to fill
them up.

A better solution is to add some code to evaluate the cell for non-numerical
content first like:

If Isnull(Activecell) = False and ActiveCell.Value = 0 then

I think thats the right code, its awhile since I've done this.

Cheers
 
K

Kevin Maher

There's nothing in the cell at all tha tI can see - it's blank, or else is
one that will contain text.

I changed the code simply by going into the Macros area and editing the code
from there. I did that in Excel 2000 so I'm wondering whether editing it in
that has done something that Excel 97 can't handle, maybe?

Kevin
 
K

Kevin Maher

Thanks for your suggestion, Lewis. I tried that and just like before, it
didn't work in 97 but did work fine in 2000. The code can handle cells that
are blank or don't contain numbers ok - at least, on paper it does - but the
version of Excel seems to determine whether or not it will run successfully.

I mentioned in my reply to Dave Peterson that I did most of my editing in
Excel 2000, so am wondering whether 2000 made some small alteration to the
code/spreadsheet somewhere that 97 can't handle?

Cheers

Kevin
 
D

Dave Peterson

It could be the way xl97 handles comparisons to numbers. I don't recall the
details, but I remember seeing posts that said that there were differences.

Maybe you could test:

Range("L1").Select
Do Until ActiveCell.Value = ""
if isnumeric(activecell.value) then
If ActiveCell.Value = 0 Then <<--- this line
Selection.EntireRow.Delete
Else
ActiveCell.Offset(1, 0).Select
End If
else
ActiveCell.Offset(1, 0).Select
end if
Loop

Kevin said:
There's nothing in the cell at all tha tI can see - it's blank, or else is
one that will contain text.

I changed the code simply by going into the Macros area and editing the code
from there. I did that in Excel 2000 so I'm wondering whether editing it in
that has done something that Excel 97 can't handle, maybe?

Kevin
 

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

Top