Ich versuche, eine Eigenschaft eines Objekts festzulegen, das Teil eines Klassenobjekt-Arrays für Excel in VBA ist.Festlegen der Klassenobjekt-Array-Eigenschaft
Der Code sieht wie folgt aus:
Dim myClass(5) as class1
Dim i as integer
For i = 0 to 5
set myClass(i) = New class
myClass(i).myProperty = "SomeValue"
Next i
Klasse-Code ist einfach:
Private pmyProperty as string
Public Property Let myProperty(s as string)
pmyProperty = s
End Property
Public Property Get myProperty() as string
myProperty = pmyProperty
End Property
Jedoch, wenn ich diese laufen, bekomme ich einen Compiler-Fehler "erwartet. Listentrennzeichen" Dies trifft auf die Zeile myClass (i) .myProperty = "SomeValue".
Wie setze ich den Wert einer Eigenschaft eines Klassenobjekts, das Teil eines Arrays ist?
Jede Hilfe wäre großartig!
So der eigentliche Code wird wie folgt ...
Modulcode:
Public Sub main_sb_BillingApp()
Dim intCountComplete As Integer
Dim intLastRow As Integer
Dim Line() As clsLine
Dim i As Integer, x As Integer
intCountComplete = WorksheetFunction.CountIf(Sheets(WS_NAME).Columns(COL_W_COMPLETE), "Yes")
intLastRow = Sheets(WS_NAME).Cells(LAST_ROW, COL_W_COMPLETE).End(xlUp).Row - 1
ReDim Line(intCountComplete - 1)
For i = ROW_W_HEADER + 1 To intLastRow
If Sheets(WS_NAME).Cells(i, COL_W_COMPLETE) = "Yes" Then
Set Line(x) = New clsLine
Line(x).Row = i
x = x + 1
End If
Next i
End Sub
Class Code:
Private pDate As Date
Private pUJN As String
Private pDesc As String
Private pCharge As Currency
Private pCost As Currency
Private pMargin As Double
Private pComplete As Boolean
Private pRow As Integer
Public Property Let Row(i As Integer)
pRow = i
Update
End Property
Public Property Get Row() As Integer
Row = pRow
End Property
Private Sub Update()
With Sheets(WS_NAME)
pDate = .Cells(pRow, COL_W_DATE)
pUJN = .Cells(pRow, COL_W_UJN)
pDesc = .Cells(pRow, COL_W_DESC)
pCharge = .Cells(pRow, COL_W_CHARGE)
pCost = .Cells(pRow, COL_W_COST)
pMargin = .Cells(pRow, COL_W_MARGIN)
If .Cells(pRow, COL_W_COMPLETE) = "Yes" Then
pComplete = True
Else
pComplete = False
End If
End With
End Sub
Ist es VB.NET * oder * Vba * oder * VBScript? – Plutonix
zeigen relevanten 'class' Code – user3598756
Der Code, den ich verwende, ist VBA für Excel. – Nicolas