Как исправить & ldquo; ошибка времени выполнения '13': несоответствие типов & rdquo; ошибка в Excel-VBA?

Каждый раз, когда меняется ячейка A15, я пытаюсь запустить 2 макроса.

  1. Показать все строки, затем
  2. Скрыть все строки с нулевым значением в столбце 82

Я получаю сообщение об ошибке в моем макросе Hide_Unused_Rows вдоль моего if заявление. Я не уверен, как решить эту проблему. Я попытался изменить его на равный "", и он все равно не будет работать. Я новичок в VBA и не уверен, как исправить условие If Cells (i, 82).Value = 0.

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

Любой совет?

Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$15" Then
        Call UnHideRows
        Call Hide_Unused_Rows
    End If
End Sub

Sub UnHideRows()
Rows("20:258").Hidden = False
End Sub

Sub Hide_Unused_Rows()
    Dim i As Integer
    Application.ScreenUpdating = False
    For i = 20 To 257
        If Cells(i, 82).Value = 0 Then
            Rows(i).EntireRow.Hidden = True
        End If
    Next
    MsgBox "Completed"
    Application.ScreenUpdating = True
End Sub

Несоответствие типов

1
задан Pᴇʜ 27 June 2019 в 05:47
поделиться

1 ответ

Отредактированный для комментирования относительно комментария:

Вы прокомментировали

В отладчике, значение = "Ошибка 2015" и тип = "Вариант/Ошибка"

, Эта ошибка означает, что Ваш Value во время выполнения #VALUE!. Можно обработать это событие правильно первым использованием следующего условного выражения:

 If Not IsError(Cells(i, 83).Value) Then
   ...
0
ответ дан 8protons 2 July 2019 в 06:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: