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

时间:2011-10-11 10:59:06

标签: excel vba

我收到VBA Excel'编译器错误:需要对象' - 标记行中出错。 我不明白原因。

BTW:希望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

2 个答案:

答案 0 :(得分:19)

Set用于分配对象,用户定义的类型被视为常规变量,因此请使用=进行分配。

另外(令人困惑); Dim Data, refData As Inherit仅声明refData类型的Inherit来声明它们必须在一行上; Dim Data As Inherit, refData As Inherit

答案 1 :(得分:3)

Dim Data, refData As Inherit

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

Dim Data As Inherit, refData As Inherit

做你想要的。这里的VBA语法不是“常识”,我已经看过几十次这个错误了。编辑:当然,您必须在作业中省略Set,因为Inherit是用户定义的类型。

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

http://exceldna.codeplex.com/