2012-03-23 26 views
13

aşağıdaki özelliklere sahip olan birVBA: Nesneyi değerlerle başlat?

CArticle başlatmak için mümkün istiyorum: Boş, önceden tanımlanmış veya akım değerleri ile ya

Private pNumber As String 
Private pQuantity As Double 

. Bunu nasıl başarabilirim? Ben çizgisinde bir şey düşünüyorum:

Yeni boş CArticle

pNumber 
pQuantity 

Yeni kukla CArticle

pNumber 
pQuantity = 99999 

Yeni O bir acıdır CArticle(number, quantity)

pNumber = number 
pQuantity = quantity 
+0

Olası kopyalar https://stackoverflow.com/questions/15224113/pass- arguments-to-constructor-in-vba) – Roland

cevap

15

init boyun ama bunu yapmanın tek yolu budur.

Dosya CArticle

Option Explicit 

Private pNumber As String 
Private pQuantity As Double 

Private Sub Class_Initialize() 
    pNumber = vbNullString 
    pQuantity = 0 
End Sub 

Public Sub InitializeWithValues(ByVal number As String, ByVal quantity As Double) 
    pNumber = number 
    pQuantity = quantity 
End Sub 

Public Sub InitializeDefaultValues() 
    pNumber = vbNullString 
    pQuantity = 99999 
End Sub 

ve arama modülünde

Dim art As New CArticle  ' Initialize value to empty 
art.InitializeWithValues "Bowtie", 100  ' and assign values 

Set art = New CArticle  ' Initialize values to empty 
art.InitializeDefaultValues ' Initialize values to default 
([VBA Oluşturucu argümanlar geçirin] arasında
+2

Bir çalışma sayfası tablosundan değerleri almak için 'InitializeFromRange (Range olarak ByVal r) yöntemi oluşturmak yararlı olabilir. – ja72