На основании вашего комментария к 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, я хотел бы включить его, потому что это распространенная ошибка новичка.