在VBA中将类属性设置为类?

时间:2017-03-16 15:02:26

标签: vba class vb6

不确定如何以书面形式表达,但我会尝试,如果您想要更多解释,请告诉我?

我正在尝试将类属性(定义为自定义类对象类型)设置为具有相同类型的已定义变量。问题是我收到了这个错误:

Run-time error '91': Object variable or With block variable not set

所以,假设我们有这两个类:

MT940Message

Public BasicHeaderInput As String
Public ApplicationHeaderInput As String
Public Trailer As String
Public Text As MT940TextObject

MT940TextObject

Public TransactionReferenceNumber As String
Public RelatedReference As String
Public AccountIdentification As String
Public StatementNumber As String
Public OpeningBalance As String
Public StatementLine As String
Public InformationToAccountOwner As String
Public ClosingBalance As String
Public ClosingAvailableBalance As String
Public ForwardAvailableBalance As String
Public InformationToAccountOwner2 As String

然后我正在做类似

的事情
Dim message As MT940Message
Set message = New MT940Message

Dim newTextObject As MT940TextObject
Set newTextObject = New MT940TextObject


newTextObject.TransactionReferenceNumber = "ref123"
newTextObject.RelatedReference = "rel123"
newTextObject.AccountIdentification "456677"

message.ApplicationHeaderInput = "abc"
message.BasicHeaderInput = "def"
message.Trailer = "ghi"
message.Text = newTextObject ' this causes Run-time error '91'

当我调试message.Text等于Nothing时。

1 个答案:

答案 0 :(得分:1)

由于.Text属性是对象引用,请尝试使用Set,例如:

Set message.Text = newTextObject