2012-03-23 8 views
13

że chcą mieć możliwość inicjowaniaVBA: Zainicjować obiekt za pomocą wartości?

CArticle o następujących właściwościach:

Private pNumber As String 
Private pQuantity As Double 

albo z pustych lub predefiniowanych wartości prądu. Jak mogę to osiągnąć? Myślę, że coś wzdłuż linii:

Nowym pustym CArticle

pNumber 
pQuantity 

Nowym manekina CArticle

pNumber 
pQuantity = 99999 

Nowe init, CArticle(number, quantity)

pNumber = number 
pQuantity = quantity 
+0

Możliwy duplikat [przekazywać argumenty do konstruktora w VBA] (https://stackoverflow.com/questions/15224113/pass- arguments-to-constructor-in-vba) – Roland

Odpowiedz

15

Jest to ból w szyi, ale to jedyny sposób, aby to zrobić.

CArticle pliku

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 

i modułu wywołującego

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

Może być przydatne utworzenie metody 'InitializeFromRange (ByVal r as Range)' w celu pobrania wartości z tabeli arkusza roboczego. – ja72

Powiązane problemy