Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1208to1212
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Property Let-Anweisung + ParamArray

Property Let-Anweisung + ParamArray
Tino
Hallo,
vielleicht kann mir einer helfen.
Wie kann ich in einer Property Let-Anweisung ein Variant Datenfeld als ParamArray einbauen.
Beispiel:
Fehler: Argument nicht optional
Property Let Namen_Liste(ParamArray varData() As Variant)
'Argument nicht optional' verstehe ich schon mal nicht,
ParamArray muss doch als letztes Argument stehen?
Aus der Hilfe zu Property Let-Anweisung
ParamArray
Optional. Wird nur als letztes Argument in ArgListe verwendet, um anzuzeigen, daß das letzte Argument ein Optional-Datenfeld mit Variant-Elementen ist. Das Schlüsselwort ParamArray ermöglicht Ihnen, eine beliebige Anzahl von Argumenten bereitzustellen. ParamArray darf nicht zusammen mit ByVal, ByRef oder Optional verwendet werden.
Wünsche noch einen schönen Sonntag!
Gruß Tino

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Property Let-Anweisung + ParamArray
03.04.2011 13:41:51
Nepumuk
Hallo Tino,
weil der Rückgabewert der Get-Prozedur fehlt und der kann kein ParamArray sein.
Gruß
Nepumuk
ok. danke, ...
03.04.2011 14:17:09
Tino
Hallo,
dann muss ich mal schauen wie das löse.
Danke
Gruß Tino
AW: ok. danke, ...
03.04.2011 14:23:06
Nepumuk
Hallo Tino,
ein kleines Beispiel:
Option Explicit

Private mstrName As String

Friend Property Get prpName(ParamArray vntData() As Variant) As String
    prpName = mstrName
    
    'hier optional daten an vntData übergeben
    
End Property

Friend Property Let prpName(ParamArray vntData() As Variant, strName As String)
    mstrName = strName
    
    'hier die optionalen Daten aus vntData holen
    
End Property

Gruß
Nepumuk
Anzeige
Übergabe an Let nur einzeln
03.04.2011 15:47:52
Tino
Hallo,
aber die Übergabe an Let kann ich auch nur einzeln machen, oder?
Sub test()
Dim oKlass As New Klasse1
With oKlass
.prpName =  "Nepumuk"
Debug.Print .prpName
End With
End Sub

Mein Ziel war eher in diese Richtung, funktioniert nur nicht.
Sub test()
Dim oKlass As New Klasse1
With oKlass
.prpName = "Tino", "Nepumuk"
Debug.Print .prpName(1)
End With
End Sub

Gruß Tino
AW: Übergabe an Let nur einzeln
03.04.2011 16:20:27
Nepumuk
Hallo Tino,
hier mal Let:
Sub test()
    Dim oKlass As New Klasse1
    With oKlass
        .prpName("Tino", "Nepumuk") = "Hallo"
    End With
End Sub

Get darfst du selbst rausfinden. Aber ich schau vorsichtshalber später nochmal vorbei. ;-)
Gruß
Nepumuk
Anzeige
AW: Übergabe an Let nur einzeln
03.04.2011 17:03:01
Tino
Hallo,
so könnte dies evtl. gehen.
kommt als Code in Modul1
Option Explicit 
 
Sub test() 
Dim oKlass As New Klasse1 
     
    With oKlass 
        .prpName("Tino", "Nepumuk", "Luc") = "" 
        Debug.Print .prpName(1, 0) 
        Debug.Print .prpName(1, 2) 
    End With 
     
End Sub 
kommt als Code in Klasse1
Option Explicit 
 
Private varName 
 
Property Get prpName(ParamArray vntData() As Variant) As String 
Dim varInhalt 
 
If IsArray(varName) Then 
    For Each varInhalt In vntData 
        prpName = prpName & varName(varInhalt) & "," 
    Next 
     
    prpName = Mid$(prpName, 1, Len(prpName) - 1) 
End If 
End Property 
 
Property Let prpName(ParamArray vntData() As Variant, strName As String) 
    varName = vntData 
End Property 
 
Private Sub Class_Terminate() 
varName = Empty 
End Sub 
Aber das gefällt mir nicht, werde es wohl mit einer/zwei normalen Sub machen.
Danke
Gruß Tino
Anzeige
...Dann hast du nicht richtig gelesen,...
03.04.2011 13:51:03
Luc:-?
…Tino,
das ist hier anders. Die Syntax von Property Let verlangt noch den Rückgabewert als letzten Parameter!
Gruß + schöSo, Luc :-?

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige