2012-03-23 18 views
13

voglio poter inizializzare unaVBA: Inizializza oggetto con valori?

CArticle avente le seguenti proprietà:

Private pNumber As String 
Private pQuantity As Double 

sia con valori vuoti, predefiniti o correnti. Come posso raggiungere questo obiettivo? Sto pensando qualcosa sulla falsariga di:

Nuova vuoto CArticle

pNumber 
pQuantity 

nuovo manichino CArticle

pNumber 
pQuantity = 99999 

Nuova init CArticle(number, quantity)

pNumber = number 
pQuantity = quantity 
+0

Eventuali duplicati di [argomenti al di costruzione della VBA] (https://stackoverflow.com/questions/15224113/pass- arguments-to-constructor-in-vba) – Roland

risposta

15

Si tratta di un dolore nel collo ma questo è l'unico modo per farlo.

CArticle File

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 

e nel modulo di chiamata

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 
+2

Potrebbe essere utile creare un metodo 'InitializeFromRange (ByVal r as Range)' per estrarre valori da una tabella di un foglio di lavoro. – ja72

Problemi correlati