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

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

«InsertNAtoBlanks» не требует пояснений, мне просто нужен этот оператор IF, чтобы прочитать определенный столбец в этой таблице, и если в какой-либо из ячеек есть пробелы, запустите макрос «InsertNAtoBlanks», если нет, то перейдите к следующему шагу в макрос.

Dim x As ListObject
Dim z As Range
Dim Bcell As Range

Set x = ActiveSheet.ListObjects("Table6")
Set z = x.DataBodyRange.Columns(11)

For Each Bcell In z
If Bcell.Value <> Empty Then

Run "InsertNAtoBlanks"

 Else

'Contiue on with macro

person Ship72    schedule 17.12.2013    source источник


Ответы (1)


если есть пробелы

Изменять

If Bcell.Value <> Empty Then

to

If Bcell.Value <> "" Then

Or to

If Len(Trim(Bcell.Value)) <> 0 Then

Ключевое слово Empty используется как подтип Variant. Указывает на неинициализированное значение переменной.

Ваш код можно записать как

Sub Sample()
    Dim x As ListObject
    Dim z As Range
    Dim Bcell As Range

    Set x = ActiveSheet.ListObjects("Table6")
    Set z = x.DataBodyRange.Columns(11)

    For Each Bcell In z.Cells
        If Bcell.Value <> "" Then
            Run "InsertNAtoBlanks"
        End If
    Next
End Sub
person Siddharth Rout    schedule 17.12.2013
comment
Сиддахарт, я попробовал оба, но все равно получил ошибку времени выполнения «13»: несоответствие типов - person Ship72; 17.12.2013
comment
Смотрите обновленный пост. Возможно, вам придется обновить страницу - person Siddharth Rout; 17.12.2013
comment
Я использовал предоставленный код, я не получил ошибку несоответствия типа, как раньше. Так что это хорошая новость, когда я запустил макрос, я получил ошибку, что ячейки не найдены. Я добавил еще в код, и я все еще получаю ту же ошибку. - person Ship72; 17.12.2013
comment
i got the error "no cells were found" в какой строке вы получили эту ошибку? - person Siddharth Rout; 17.12.2013
comment
вы не можете получить ошибку или более одной строки в любой момент. Итак, в какой строке вы получаете ошибку? For Each Bcell In z.Cells ИЛИ If Bcell.Value <> "" Then ИЛИ Run "InsertNAtoBlanks" - person Siddharth Rout; 17.12.2013
comment
Не видя вашей части else, я не могу комментировать :) - person Siddharth Rout; 17.12.2013
comment
Я не знал, как показать вам код в комментариях, поэтому я просто добавил ответ ниже со всем кодом и ошибкой, которые он выделял :) - person Ship72; 17.12.2013
comment
давайте продолжим обсуждение в чате - person Siddharth Rout; 17.12.2013