Ich habe ein schreckliches Problem. Ich habe monströse Klassen mit vielen Eigenschaften aufgebaut, unter denen es auch Array-Eigenschaften gibt.callbyname arbeitet mit Array-Element als procname
, wenn ich diese mit CallByName bezeichnen möchten, es wird nicht funktionieren, lassen Sie uns ein Beispiel sehen:
public sub whatsoever()
Dim alfaarray() As Variant
Dim g As Integer
Dim obj As Object
ReDim alfaarray(4)
Set obj = New teszt
For g = 0 To 4
alfaarray(g) = "g" & CStr(g)
Next g
Call obj.init
CallByName obj, "GARG", VbLet, alfaarray
end sub
Klasse: teszt
Dim pgarg() As String
Property Let GARG(index As Long, value As String)
pgarg(index) = value
End Property
Property Get GARG(index As Long) As String
GARG = pgarg(index)
End Property
Public Sub init()
ReDim pgarg(4)
End Sub
Sehr geehrte MAts, Vielen Dank, ich war nicht klar: Ich möchte ein Array zu einer Array-Eigenschaft hinzufügen, die noch leer ist und zu diesem Zweck möchte ich callbyname verwenden. also brauche ich nur vblet, ich werde keinen sub :) laufen lassen, ich habe es überall gesucht, es gibt bisher keine lösung und vielleicht gibt es überhaupt keine lösung. wieder sind wir an den Grenzen von vba :( – viktorajosagos
Sorry, ich missverstanden das Problem; löschte meinen vorherigen Kommentar. Dies ist der neue: Wenn was Sie tun möchten, funktioniert nicht mit dem eingebauten 'CallByName' müssen Sie schreibe deine eigene, die um die Einschränkungen herum funktioniert, dort kannst du das Array durchlaufen und deine Eigenschaften explizit für jeden Eintrag aufrufen – Leviathan
Du musst typelib wie hier erwähnt verwenden http://www.vbforums.com/showthread. php? 405366-RESOLVED-Using-CallByName-with-variable-Anzahl-von-Argumenten – Jules