Введение в VBA Ошибка переполнения

Мы сталкиваемся со многими типами ошибок при работе с VBA. Ошибки называются ошибками времени выполнения, когда они столкнулись с ошибкой при выполнении кода. Кроме того, каждому коду присваивается определенный код при программировании на VBA. В Excel одной из таких ошибок является ошибка переполнения VBA. Код этой ошибки - ошибка времени выполнения 6, что означает переполнение при программировании VBA. Мы узнаем об этой ошибке в этой статье.

Теперь мы знаем, что эта ошибка переполнения является типом ошибки, теперь давайте разберемся, что означает эта ошибка. Если мы объявим какую-либо переменную как определенный тип данных, и значение переменной превысит предел типа данных переменной, мы получим ошибку для переполнения. Например, если мы определяем переменную как целое число и знаем, что целое число может содержать значения до 32767 для положительных чисел и -32768 для отрицательных чисел. Поэтому, если мы предоставим какой-либо ввод за пределами этого диапазона, мы столкнемся с ошибкой переполнения в VBA.

Ошибка переполнения в терминах непрофессионала означает, что мы перегружаем тип данных значениями, которые он может содержать. Такие случаи натолкнут нас на эту ошибку. Поэтому, чтобы избежать этой ошибки, нам нужно знать, какой тип данных мы используем, чтобы мы могли предотвратить это.

Через различные примеры мы увидим, что в разных типах данных мы можем столкнуться с этой ошибкой.

Как использовать ошибку переполнения VBA в Excel?

Мы научимся использовать функцию ошибки переполнения VBA на нескольких примерах в Excel.

Вы можете скачать этот шаблон Excel с ошибками переполнения VBA здесь - Шаблон Excel с ошибками переполнения VBA

Пример № 1 - Ошибка переполнения

Для первого примера давайте используем тип данных Integer. Попробуем переполнить значения, чтобы переменные не могли их сохранить, и увидим ошибку, с которой мы столкнулись.

Выполните следующие шаги, чтобы использовать функцию ошибки переполнения VBA в Excel:

Шаг 1: Чтобы начать с VBA, в первую очередь нам нужно включить вкладку нашего разработчика, а затем щелкнуть по ней, чтобы открыть VB Editor из Visual Basic, как показано на скриншоте ниже.

Шаг 2: Нажмите на него и вставьте модуль следующим образом. Как только мы нажмем на модуль. Дважды щелкните по нему, и он откроет нам другое окно, где мы напишем наш код.

Шаг 3 : Мы увидим пустое окно с правой стороны от нас, объявим подфункцию и вот как мы запустим макрос следующим образом:

Код:

 Sub Sample () End Sub 

Шаг 4: Объявите переменную как целое число, чтобы она могла содержать целочисленное значение для нас,

Код:

 Sub Sample () Dim A As Integer End Sub 

Шаг 5: Теперь в переменной A сохраните такое значение, которое будет переполнять тип данных следующим образом:

Код:

 Sub Sample () Dim A As Integer A = 4896 * 5000 End Sub 

Шаг 6: Теперь отобразите значение A с помощью функции msgbox,

Код:

 Sub Sample () Dim A As Integer A = 4896 * 5000 MsgBox A End Sub 

Шаг 7: Запустите приведенный выше код и посмотрите, какой результат мы получим,

Мы получили эту ошибку, потому что 4896 * 5000 превышает положительный предел числа для целочисленного типа данных для хранения, и переменная A переполняется этим значением, поэтому мы сталкиваемся с этой ошибкой.

Пример №2 - Ошибка переполнения

Теперь в этом примере давайте используем тип данных BYTE. Мы знаем, что байтовый тип данных может содержать значения от 0 до 255, но любые значения, отличные от этого диапазона, приведут к ошибке. Позвольте нам выяснить.

Шаг 1: У нас уже вставлен наш модуль, мы можем работать над тем же самым или создать новый. Но давайте работать над тем же модулем, который мы вставили. Дважды щелкните модуль, чтобы снова войти в окно кода,

Шаг 2: Объявите другую подфункцию следующим образом:

Код:

 Sub Sample1 () End Sub 

Шаг 3: Объявите переменную как тип данных BYTE следующим образом:

Код:

 Sub Sample1 () Dim A As Byte End Sub 

Шаг 4: Теперь в переменной A сохраняем значение выше 255, как показано ниже:

Код:

 Sub Sample1 () Dim A As Byte A = 266 End Sub 

Шаг 5: Используйте функцию msgbox, чтобы отобразить значение A,

Код:

 Sub Sample1 () Dim A As Byte A = 266 MsgBox A End Sub 

Шаг 6: Давайте запустим приведенный выше код, нажав F5 и увидим результат,

Шаг 7: Теперь давайте попробуем изменить значение A на 244 и повторно запустить код, чтобы увидеть результат,

Код:

 Sub Sample1 () Dim A As Byte A = 244 MsgBox A End Sub 

Шаг 8: Когда мы снова запустим код, мы увидим следующий результат:

Когда мы в первый раз запускаем кодовую переменную A, значения превышают диапазон, который может содержать тип данных BYTE, но во втором случае переменная A имеет данные в своем диапазоне типов данных, поэтому мы не столкнулись с ошибкой переполнения.

Пример № 3 - Ошибка переполнения

Теперь давайте использовать тип данных LONG в качестве примера, поскольку он является наиболее используемым типом данных среди программистов.

Шаг 1: Мы снова будем работать в том же модуле, который мы вставили ранее. Нам просто нужно дважды щелкнуть по модулю, и мы в нем.

Шаг 2: Объявите подфункцию, как показано на скриншоте.

Код:

 Sub Sample2 () End Sub 

Шаг 3: Объявите переменную как тип данных LONG следующим образом.

Код:

 Sub Sample2 () Dim A As Long End Sub 

Шаг 4: Теперь, аналогично приведенным выше примерам, давайте переполним эту переменную, заставив ее хранить значения выше своего диапазона следующим образом.

Код:

 Sub Sample2 () Dim A As Long A = 2000 * 365 End Sub 

Шаг 5: Используйте функцию msgbox для отображения значения A следующим образом.

Код:

 Sub Sample2 () Dim A As Long A = 2000 * 365 MsgBox A End Sub 

Шаг 6: Нажмите на кнопку Run выше и увидите, что мы столкнулись с ошибкой переполнения.

Шаг 7: Теперь есть способ преодолеть эту ошибку в длинном типе данных с помощью функции CLNG следующим образом.

Код:

 Sub Sample2 () Dim A As Long A = CLng (2000) * 365 MsgBox A End Sub 

Шаг 8: Теперь, если мы снова запустим код, мы увидим следующий результат.

Теперь, что сделала функция CLNG? Он преобразовал значение в длинное целое число, которое может содержать переменная.

Как преодолеть ошибку переполнения в VBA

Когда мы сталкиваемся с ошибкой переполнения в VBA, которая означает, что любая из наших переменных не более имеет некоторые значения, которые она не может содержать. Нам нужно идентифицировать переменную и исправить ее. Кроме того, у нас есть функция CLNG для длинных типов данных, чтобы помочь нам. Но знание нашего типа данных действительно помогает.

То, что нужно запомнить

Есть некоторые вещи, которые мы должны помнить об ошибке переполнения в VBA:

  • Ошибка переполнения - это ошибка времени выполнения.
  • Код ошибки переполнения - 6.
  • Чтобы преодолеть ошибку переполнения, мы должны знать, какой тип данных может содержать сколько значений.
  • Функция CLNG помогает при ошибке переполнения для длинных типов данных.

Рекомендуемые статьи

Это руководство по ошибке переполнения VBA. Здесь мы обсудим, как использовать функцию переполнения Excel VBA вместе с практическими примерами и загружаемым шаблоном Excel. Вы также можете просмотреть наши другие предлагаемые статьи -

  1. Функция копирования и вставки в VBA
  2. Функция подстроки Excel
  3. Индекс VBA вне диапазона
  4. Excel ISNUMBER Formula

Категория: