Der Knackpunkt an dieser Aufgabenstellung ist, dass eben nicht nur Zellbezüge an die Funktion übergeben werden können, sondern auch feste Zeichenketten und feste Zahlen (also sowas wie in den Testformeln "abc" oder 4,5 oder 1). Das Ganze in beliebiger Reihenfolge und Menge. Deshalb hatte ich sehr gezielt die Formel =Verbinden(A1:A3;1;"A";A1) zum Ausgeben der Datentypen ausgewählt.
Da kommen nämlich alle Datentypen drin vor, mit denen du es zu tun bekommen kannst, auf die du also reagieren musst. Zusätzlich kannst du sehen, dass die beiden Elemente A1:A3 und A1 den gleichen Datentyp Range haben, das erste aber offensichtlich mehrere Zellen sind, während A1 nur eine Zelle ist. Mehrere Zellen sollten dir aus der BuchstabenZaehlenFunktion bekannt vorkommen.
Da es schon eine Komplettlösung gibt, gebe ich dir mal den ersten Schritt vor, den ich gestern zur Umsetzung vorgeschlagen hatte. Das Ausgeben der Datentypen zu allen Elementen des übergebenen Arrays. Wie gesagt, die Ausgabe kannst du dir ansehen, wenn du im Quellcode Editor Strg+G drückst:
Public Function Verbinden(ParamArray allArgs() As Variant) As String
Dim oneArg As Variant
For Each oneArg In allArgs
Debug.Print TypeName(oneArg)
Next oneArg
End Function
Ein Schlüssel zum Verständnis ist der Übergabeparameter. Kannst du dir herleiten, warum hier ParamArray allArgs() As Variant verwendet wird?
Wieviele dieser Übungsaufgaben hast du denn?
|