문제

Excel 2003 스프레드 시트에 부착 된 일부 VBA에서는 인스턴스화하는 데 시간이 걸리는 일부 객체를 사용해야합니다. 따라서 한 번만 '세트'를하고 싶습니다 ...

설명을 작성하는 것보다 코드 쇼가 더 쉽습니다!

' 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) - myobj의 상태에 관계없이 '세트'를 건너 뜁니다. 나는 할 수 없다

if myObj = Nil then

또는

if myObj = Empty then

또는

if myObj = Nothing then

어떤 아이디어?

남자 이름

도움이 되었습니까?

해결책

이것은 작동해야합니다 :

    If myObj IS Nothing Then

( "is") 작동하지 않으면 Com init 호출이 기본적으로 동기식이기 때문에 해당 클래스에서 구체적으로 구현 된 비동기적 인 소수화가 있어야합니다. 따라서 DOC를 확인하거나 개발자에게 큰 클래스에 대해 대기하는 속성 또는 동기치 방법에 대해 대기 할 수있는 방법에 대해 이야기해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top