Ответ 1
На основе вашего комментария к Issun:
Спасибо за объяснение. В моем случае объект объявляется и создается до условия If. Итак, как использовать условие If для проверки < Нет переменных > ? Другими словами, я не хочу выполнять My_Object.Compute, если My_Object имеет < Нет переменных >
Вам нужно проверить одно из свойств объекта. Не сообщая нам, что это за объект, мы не можем вам помочь.
Я проверил несколько общих объектов и обнаружил, что экземпляр Collection
без добавленных элементов показывает <No Variables>
в окне просмотра. Если ваш объект действительно представляет собой коллекцию, вы можете проверить условие <No Variables>
, используя свойство .Count
:
Sub TestObj()
Dim Obj As Object
Set Obj = New Collection
If Obj Is Nothing Then
Debug.Print "Object not instantiated"
Else
If Obj.Count = 0 Then
Debug.Print "<No Variables> (ie, no items added to the collection)"
Else
Debug.Print "Object instantiated and at least one item added"
End If
End If
End Sub
Также стоит отметить, что если вы объявляете какой-либо объект As New
, то проверка Is Nothing
становится бесполезной. Причина в том, что когда вы объявляете объект As New
, он автоматически создается при его первом вызове, даже если в первый раз вы его вызываете, чтобы увидеть, существует ли он!
Dim MyObject As New Collection
If MyObject Is Nothing Then ' <--- This check always returns False
Это, похоже, не является причиной вашей конкретной проблемы. Но, поскольку другие могут найти этот вопрос через поиск Google, я хотел включить его, потому что это обычная ошибка начинающего.