2017-05-02 1 views
0

ich eine Klasse clsPowerAttwollen Variable verwenden, um Zugriff auf Klassenmitglied

Public customerName As String 
Public customerSoc As String 


sub test() 
    Dim oPowerEntry As New clsPowerAtt 

    dim members(5) as string 
    members(0) = customerName 
    members(1) =customerSoC 
    dim entry as variant 

    for each entry in members 

    oPowerEntry .entry = "foo" 

    next each 
end sub 

ich durch eine Reihe fahren wollen, die Mitglieder der Klasse definiert, definiert haben, so dass ich nicht direkt aufrufen müssen. Es mag keine Variable in die Klasse Mitglied

oPowerEntry .entry = "foo" 

zu zeigen, wie ich vba dotell Eintrag

+0

Haben Sie versucht, Enum zu verwenden? Ich bin mir nicht sicher, ob das möglich ist. Ich verwende normalerweise einen Klassenkonstruktor, um meine Klassenobjekteigenschaften festzulegen. – twegner

Antwort

0

Verwenden Sie eine Klasse Constructor zu bewerten. In diesem Beispiel wird der Konstruktor "init" (für initialize) genannt

private Klasse Eigenschaften

Private pinp1 As Double 
Private pinp2 As Double 
Private pinp3 As Double 
Private pinp4 As Double 
Private pinp5 As Double 

Und Ihren Konstruktor. Hier können Sie alle fünf (oder wie viele) Ihrer Eigenschaften als Parameter des öffentlichen Sub übergeben. Natürlich müssen Sie die Namen meiner Eigenschaften durch Ihre und die Datentypen ersetzen. Dies ist nur ein Beispiel für einen grundlegenden Konstruktor.

Public Sub init(ByVal inp1 As Variant, ByVal inp2 As Variant, ByVal inp3 As Variant, _ 
      ByVal inp4 As Variant, ByVal inp5 As Variant) 
    ' 
    ' set the private class variables to your parameters 
    pinp1 = CDbl(inp1) 
    pinp2 = CDbl(inp2) 
    pinp3 = CDbl(inp3) 
    pinp4 = CDbl(inp4) 
    pinp5 = CDbl(inp5) 
End Sub 
Verwandte Themen