Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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 |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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 Erik Beck Jensen wrote: 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 |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Thanks you very much.
The problem is solved. Best regards Erik "Andrew Taylor" wrote in message oups.com... 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 Erik Beck Jensen wrote: 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 |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
overflow error | Excel Programming | |||
buffer overflow | Excel Programming | |||
Overflow in VBA, but value < limit | Excel Programming | |||
VBA overflow | Excel Programming | |||
VBA overflow | Excel Programming |