我收到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
答案 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: