web_Developer_Victor
@web_Developer_Victor
Что такое google?

Что делать с Overflow в VBA?

Есть вот такой код:
Private Sub CommandButton2_Click()
Dim speed As Long, minute As Long, hour As Long, day As Long

speed = 299792
minute = 60 * speed
hour = (60 * 60) * speed
day = 60 * 60 * CLng(24)
day = CLng(day) * CLng(speed)

TextBox1.Text = minute
TextBox2.Text = hour
TextBox3.Text = day
End Sub

На 8 строке выскакивает ошибка:
Run-time error '6':
Overflow

Что делать?
(8 строка это day = CLng(day) * CLng(speed))
  • Вопрос задан
  • 3466 просмотров
Решения вопроса 1
honor8
@honor8
Принципы быстродействия VBA в описании
Тип данных Long используется для хранения чисел от -2147483648 до 2147483647. Для бóльших значений используется тип Double (или Currency для денежных единиц), но свыше 15 знаков точность числа с плавающей точкой будет падать. Неопределённый тип можно преобразовать программно CDec("24,0") в Decimal (16 байт). Эквивалентное написание:
CLng(24) = 24& ' 4 байт
CLngLng(24) = 24^ ' 8 байт - только для x64
CDbl(24) = 24# ' 8 байт
CCur(24) = 24@ ' 8 байт
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы