2011-10-11 5 views
12

VBA Excel '컴파일러 오류 : 필요한 개체'- 표시된 줄에 오류가 있습니다. 이유를 모르겠습니다.VBA Excel : 컴파일 오류 : 필요한 개체?

BTW : Wish Excel은 래퍼가 필요없는 .NET 언어를 지원합니다.

Option Explicit 

Public Type Inherit 
    ReqId As Integer 
    Parent As Integer 
    Depth As Integer 
    Path As String 
End Type 

Sub test() 
    Dim MyStructure() As Inherit 
    ReDim MyStructure(1 To 1000) 

    MyStructure(1).ReqId = 1 

    Dim Data, refData As Inherit 
    Set Data = MyStructure(1) ' <---! 
    Beep 

End Sub 

답변

19

Set 사용자 정의 유형 처리, 오브젝트의 할당을위한 일반 변수와 마찬가지로 =을 사용하십시오.

또한 (혼란스럽게); Dim Data, refData As Inherit은 유형의 refData 만 선언하면 한 줄에 둘 다 선언해야합니다. Dim Data As Inherit, refData As Inherit

+0

+1, 나는 '상속 (inherit)'의 정의를 간과했다. –

3
Dim Data, refData As Inherit 

VariantData, Inherit로만 refData 선언합니다.

Dim Data As Inherit, refData As Inherit 

원하는 것을 수행합니다. VBA 구문은 "상식"이 아닙니다.이 오류는 수십 번 보았습니다. 편집 : 물론, Inherit 사용자 정의 형식이기 때문에 Set 할당에서 제외해야합니다. 당신이 찾고있는 경우

엑셀-DNA를 보면, Excel 용 .NET 통합을 사용하여 무료로 쉽게 :

http://exceldna.codeplex.com/