Ошибка несоответствия типа VBA

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

Что такое ошибка несоответствия типа VBA?

Ошибка несоответствия типа VBA в Excel — это тип «ошибки времени выполнения», и это ошибка номер 13 в этой категории.

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

Обычно мы объявляем переменные и присваиваем им типы данных. Когда мы присваиваем значение этим переменным, нам нужно помнить, какие данные они могут хранить. Если присвоенное значение не соответствует типу данных, мы получим «Ошибка времени выполнения 13: несоответствие типов».

Ошибка несоответствия типа VBA

Вы можете использовать это изображение на своем веб-сайте, в шаблонах и т. д. Пожалуйста, предоставьте нам ссылку на авторствоКак предоставить атрибуцию?Ссылка на статью должна быть гиперссылкой
Например:
Источник: Ошибка несоответствия типа VBA (wallstreetmojo.com)

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

Давайте посмотрим на несколько примеров, чтобы понять эту ошибку несоответствия типа VBA.

Вы можете скачать этот шаблон Excel несоответствия типов VBA здесь — Несоответствие типа VBA шаблону Excel

Несоответствие типов VBA — пример №1

Например, посмотрите на ниже код VBAКод VBAКод VBA относится к набору инструкций, написанных пользователем на языке программирования приложений Visual Basic в редакторе Visual Basic (VBE) для выполнения определенной задачи.читать далее.

Код:

Sub Type_MisMatch_Example1()

Dim k As Byte

k = "Hiii"

MsgBox k

End Sub
пример несоответствия vba 1.1

Я объявил переменную «k» как Byte.

Это означает, что переменная «k» может содержать значения от 0 до 255. Но в следующей строке я присвоил переменной «k» значение «Hiii».

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

пример несоответствия vba 1.2

Несоответствие типов VBA — пример № 2

Теперь взгляните на еще один пример с другим типом данных. Посмотрите на приведенный ниже код.

Код:

Sub Type_MisMatch_Example2()

Dim x As Boolean

x = 4556

MsgBox x

End Sub
пример несоответствия vba 2.1

Мы объявили переменную «x» как логическую.

Булев тип данныхBoolean — это тип данныхBoolean — это встроенный тип данных в VBA, используемый для логических ссылок или логических переменных. Значение, которое содержит этот тип данных, равно TRUE или FALSE и используется для логического сравнения. Объявление этого типа данных аналогично всем другим типам данных.читать далее который может содержать значение TRUE или FALSE.

В приведенном выше коде мы присвоили значение 4556, которое не соответствует значениям типа данных TRUE или FALSE.

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

Пример несоответствия vba 2.2

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

Причина этого заключается в том, что Excel рассматривает все числа как ИСТИНА, кроме нуля. Нулевое значение будет рассматриваться как FALSE. Вот почему мы получили результат TRUE, а не ошибку.

Теперь смотрите, я назначу числовое значение с текстом.

Код:

Sub Type_MisMatch_Example2()

Dim x As Boolean

x = "4556a"

MsgBox x

End Sub
пример несоответствия vba 2.3

Это определенно вызовет ошибку времени выполнения 13: несоответствие типов.

пример несоответствия vba 2.4

Несоответствие типов VBA — пример №3

Теперь посмотрите на приведенный ниже код для этого примера.

Код:

Sub Type_MisMatch_Example4()

Dim x As Integer
Dim y As String

x = 45
y = "2019 Jan"

MsgBox x + y

End Sub
пример 3.1

Переменная «x» представляет собой целочисленный тип данных, а «y» — строковый тип данных.

X = 45 и y = 2019 января.

В окне сообщения я добавил x + y.

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

пример 3.2

Несоответствие типов VBA — пример № 4

Исключительные случаи

Бывают ситуации, когда Excel прощает неправильные данные, присвоенные типу данных переменной. Например, посмотрите на приведенный ниже код.

Код:

Sub Type_MisMatch_Example3()

Dim x As Long
Dim y As Long

x = 58.85

y = "85"

MsgBox x & vbNewLine & y

End Sub
пример 4.1

Две объявленные переменные — «x» и «y».

Для этой переменной назначен тип данных «Длинный».

Тип данных Long принимает только целые числа, а не десятичные значения.

Таким образом, общее восприятие состоит в том, чтобы получить ошибку времени выполнения 13 из-за ошибки несоответствия типа.

Но давайте посмотрим, что произойдет, когда мы запустим этот код.

пример 4.2

Ух ты!!! Мы получили значения 59 и 85.

Это связано с тем, что VBA преобразует десятичное значение 58,85 в ближайшее целое значение, и даже если числа заключены в двойные кавычки, оно все равно преобразуется только в целочисленное значение.

УЗНАТЬ БОЛЬШЕ >>

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован.