VBA Excel:编译错误:对象需要?

我得到一个VBA Excel的“编译器错误:所需的对象” – 标记行中的错误。 我不明白原因。

顺便说一句:祝愿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 

Set是用于赋值的对象,用户定义的types被视为一个普通variables,所以用=来赋值。

也(令人困惑); Dim Data, refData As Inherit只声明types为Inherit refData以在一行上声明它们; Dim Data As Inherit, refData As Inherit

 Dim Data, refData As Inherit 

Data声明为Variant ,只将refData声明为Inherit

 Dim Data As Inherit, refData As Inherit 

做你想要的。 VBA语法在这里不是“常识”,我看过这个错误几十次了。 编辑:当然,你将不得不离开Set在赋值,因为Inherit是一个用户定义的types。

如果你正在寻找一个免费且易于使用的.NET集成Excel,看看Excel-DNA:

http://exceldna.codeplex.com/