Dim R1, R2, R3 as Range
Set R1 = Range("A1")
Debug.Print IsEmpty(R1), IsEmpty(R2)
' Assuming A1 is blank, both will return True
Мне нужно знать разницу между неинициализированным Range и ячейкой и ячейкой, которая просто пуста (ее нельзя просто игнорировать: например, CountIf
будет счастливо считать пустые ячейки ...)
Любые идеи, кроме попыток On Error Resume Next
доступа, например, R.Cells
?
РЕДАКТИРОВАНИЕ
По какой-то причине последний определенный диапазон автоматически инициализируется в Ничего. У меня более 3-х диапазонов - это мой фактический код, я добавил код R3 в приведенном выше коде.
Итак, после Dim
: R1 пуст, R2 пуст, R3 пуст
Опять R2 пуст не Ничего. Тестирование на R2 Is Nothing
завершается с ошибкой 424.
РЕДАКТИРОВАТЬ 2
Sub zero()
Dim R1, R2, R3, R4 As Range
Set R1 = Range("a1") ' a1 is blank
On Error GoTo ERROR
If R2 Is Nothing Then Debug.Print "nothing" Else Debug.Print "not nothing"
ERROR:
Debug.Print Err.Number, Err.Description
End Sub
Результаты 424
РЕДАКТИРОВАТЬ 3
Dim R1 As Range, R2 As Range, R3 As Range, R4 As Range
работает