Overflow

  • Thread starter Thread starter Erik Beck Jensen
  • Start date Start date
E

Erik Beck Jensen

Excel 2003 SP2





Hello every body


This little sub gives me a runtime overflow. Did I miss something?




Sub ebj()

Dim ll_test As Long

ll_test = 162 * 207


End Sub



I would have expected ll_test to take a value = 33,534. A Long should be
sufficient to hold that. If I change the declaration to Single or Variant I
still get an overflow.



Any suggestions?





Best regards

Erik
 
The problem is that VBA tries to calculate
162 * 207 as an Integer, and then convert
to the result to a Long. The first of these
steps causes the overflow. You can get
round this by forcing one of the values
to be a Long:

ll_test = 162& * 207
or
ll_test = CLng(162) * 207

Note that ll_test = clng(162 * 207) will fail,
for the same reason as in the original problem.


Andrew Taylor
 
Thanks you very much.

The problem is solved.



Best regards

Erik
 

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

Back
Top