루프를 통해 배열에 추가하는 사용자 지정 개체가 있습니다. 문제는 다음과 같이 객체를 초기화했을 때입니다.VBA에서 개체를 초기화하는 올바른 방법은 무엇입니까?
Dim CallNum As New Lib_CallNum
루프에 추가 된 마지막 객체는 루프 중에 추가 된 다른 모든 객체를 덮어 씁니다. 그래서 나는 같은 대상들을 채워 넣은 배열로 끝날 것입니다. 이 문제를 해결하기 위해 개체를 초기화하는 방식을 변경해야했습니다.
Dim CallNum As Lib_CallNum
Set CallNum = New Lib_CallNum
그러나 첫 번째 초기화가 작동하지 않는 이유는 확실하지 않습니다. 그렇다면 두 코드 세트의 차이점은 무엇입니까?
크리스, 설명 해줘서 고마워. 나는 결코 그것을 알지 못했다. –
+1 좋은 후속 : :) –
'Dim obj as new [object type]'구문을 사용하면 객체를 파괴하는 데 문제가 발생할 수 있으므로 수동으로 객체를 파괴하려는 경우 기본적으로 좋은 아이디어는 아닙니다. 순환 객체 참조를 사용하는 경우. [자세한 내용은이 답변을 참조하십시오] (https://stackoverflow.com/questions/8114684/what-is-the-reason-for-not-instantiating-an-object-at-the-time-of-declaration). 객체를 생성하는 데 항상 2 행 구문을 사용하는 습관을 갖춰서 객체가 언제 만들어지고 어떻게 파괴되는지 항상 알 수 있도록하는 것이 좋습니다. – nateAtwork