Проверка на ноль в ячейках - PullRequest
1 голос
/ 02 августа 2011

Код:

    Sub Usuns()
Dim wiersz, licznik As Integer
wiersz = 0
licznik = 0
Do
licznik = licznik + 1
 If Range("B" & licznik).Value Is Null Then
  Range("B" & licznik).Select
  Selection.Delete
  wiersz = wiersz + 1
 Else
  wiersz = 0
 End If
 If wiersz = 50 Then
       Exit Do
 End If
Loop
End Sub

Эта строка If Range("B" & licznik).Value Is Null Then выдает эту ошибку:

Ошибка времени выполнения '424': требуется объект

Как мне это исправить?

Ответы [ 3 ]

1 голос
/ 02 августа 2011

Вы не можете использовать значение Null таким образом.

Вы должны попробовать:

If Range("B" & licznik).Value = ""

См. здесь для небольшого обсуждения о Null.

1 голос
/ 03 августа 2011

# NULL!

Я думаю, вы хотите определить, содержит ли ячейка код ошибки Excel #NULL!.Для этого вам нужно использовать функцию CVErr :

If Range("B" & licznik).Value = CVErr(xlErrNull)

Пустые ячейки

Если, однако, вы хотите проверить наличие пустых (пустых) ячееквы захотите использовать функцию IsEmpty .

If IsEmpty(Range("B" & licznik).Value) Then

Обратите внимание, что это единственный способ строго проверить пустые ячейки.Другие трюки не будут вести себя так же;например, Range("B" & licznik).Value = "" вернет True, если ячейка содержит пустую строку (т. е. =""), тогда как IsEmpty вернет False.Зависит от того, что вы хотите сделать.Выбирай осторожно.

0 голосов
/ 02 августа 2011

Я подозреваю, что Range должен находиться в области действия родительского объекта листа.

Так что либо:

ThisWorkbook.Sheets("MySheet").Range("B" & licznik).Value

или

With ThisWorkbook.Sheets("MySheet")
    'some code...

    .Range("B" & licznik).Value

    'some more code...
End With
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...