Как я узнаю, что на объект уже есть ссылка?
В некоторых VBA, прикрепленных к электронной таблице Excel 2003, мне нужно использовать некоторые объекты, для создания которых требуется некоторое время, поэтому я хочу выполнить установку только один раз...
Проще показать код, чем написать объяснение!
' Declare the expensive object as global to this sheet
Dim myObj As SomeBigExpensiveObject
Private Sub CommandButtonDoIt_Click()
' Make sure we've got a ref to the object
If IsEmpty(myObj) Then ' this doesn't work!
Set myObj = New SomeBigExpensiveObject
End If
' ... etc
End Sub
Как я могу проверить, был ли myObj уже установлен?
Я пробовал IsNull(myObj) и IsEmpty(myObj) - оба пропускают 'set', независимо от состояния myObj. Я не могу сделать
if myObj = Nil then
или же
if myObj = Empty then
или же
if myObj = Nothing then
Есть идеи?
SAL
1 ответ
Это должно работать:
If myObj IS Nothing Then
(обратите внимание на "IS"). Если это не сработает, то должна быть специально реализована асинхронная инициализация этим классом, потому что вызовы инициализации COM являются синхронными по умолчанию. Итак, вам нужно проверить документ или поговорить с разработчиком о классе Big, чтобы узнать какое-либо свойство или метод синхронизации, чтобы вы могли ждать.