2017-03-16 58 views
0

不知道如何以书面形式表达,但我会尝试,请让我知道如果你想要更多的解释?将类属性设置为VBA中的类?

我想设置一个类属性 - 它被定义为一个自定义类对象类型 - 到一个具有相同类型的类的定义变量。问题是,我得到这个错误:

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

+2

使用'Set'关键字与对象:'Set message.Text = newTextObject' – user3598756

+0

谢谢!这工作:) – dadde

回答

1

由于.Text属性是一个对象的引用,尝试使用Set如:

Set message.Text = newTextObject