programing

excel vba에서 글로벌 변수의 수명은 얼마입니까?

newsource 2023. 6. 29. 20:11

excel vba에서 글로벌 변수의 수명은 얼마입니까?

저는 COM 객체를 보유하기 위한 전역 변수를 선언하는 워크북을 가지고 있습니다.

Global obj As Object

Workbook_Open 이벤트에서 다음과 같이 초기화합니다.

Set obj = CreateObject("ComObject.ComObject");

생성된 것을 확인할 수 있고 그 때 COM 통화를 할 수 있습니다.

제 시트에는 다음과 같은 세포들이 많이 있습니다.

=Module.CallToComObject(....)

모듈 내부에는 기능이 있습니다.

Function CallToComObject(...)
   If obj Is Nothing Then
        CallToComObject= 0
    Else
        Dim result As Double
        result = obj.GetCalculatedValue(...)
        CallToComObject= result
    End If
End Function

잠시 동안 이러한 작업을 볼 수 있지만 몇 장의 시트를 새로 고치면 Obj 개체가 더 이상 초기화되지 않습니다. 즉, 없음으로 설정됩니다.

누가 제가 무엇을 찾아야 하는지 설명해주실 수 있나요?

다음 중 하나가 글로벌 변수를 재설정합니다.

  1. "끝"
  2. 처리되지 않은 런타임 오류
  3. 코드 편집
  4. VB 프로젝트가 포함된 워크북 닫기

하지만 그것이 반드시 완전한 목록은 아닙니다.

위의 4가지 사항 외에 5번째 사항을 제안합니다.코드를 통과(디버깅)하고 종료에 도달하기 전에 중지합니다.편집 코드로 인해 전역 변수의 값이 손실되지 않으므로 3번 지점을 대체할 수 있습니다.

언급URL : https://stackoverflow.com/questions/7041138/what-is-the-lifetime-of-a-global-variable-in-excel-vba