Как исправить ошибку «Ошибка выполнения 13»: несоответствие типов »в Excel-VBA? - PullRequest
1 голос
/ 27 июня 2019

Каждый раз, когда меняется ячейка 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 Ответ

0 голосов
/ 27 июня 2019

Отредактировано, чтобы оставить комментарий к вашему комментарию:

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

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

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

 If Not IsError(Cells(i, 83).Value) Then
   ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...