Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1176to1180
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

Übergabe von Argumenten an Funktion

Übergabe von Argumenten an Funktion
Argumenten
Hallo liebe Excelfreunde,
wie muss ich folgende Funktion umschreiben, damit die Argumente gemischt sowohl als Zellen (also Range) als auch in Textform (also String) an die selbstgeschriebene Funktion übergeben werden können:
Beispielcode der Funktion in Modul 1, bei der die Argumente ausschließlich als Range
übergeben werden können:

Option Explicit
Function Verketten2(ParamArray Werte() As Variant) As String
Dim Argument As Variant, Zelle As Variant
For Each Argument In Werte()
For Each Zelle In Argument
Verketten2 = Trim(Verketten2 & " " & Zelle.Value)
Next Zelle
Next Argument
End Function

Es soll also möglich sein die Argumente zum Beispiel in dieser Form zu übergeben:
=Verketten2(A13:F13;G13;“Textangabe“;H13)
Ich sollte vielleicht noch erwähnen, dass es sich hier um eine Verständnisfrage handelt. Bei der Original Verketten-Funktion von Excel können Zellen und Text ebenfalls gemischt als Argumente übergeben werden (…allerdings keine Zellbereiche). Ich will also einfach nur lernen.
Schöne Grüße
Martin
AW: Übergabe von Argumenten an Funktion
06.09.2010 21:29:54
Argumenten
Hallo,
das For Each versagt wenn Argument kein Range ist. Das kannst Du durch Abfrage des Variablentyps vermeiden:
Option Explicit
Function Verketten2(ParamArray Werte() As Variant) As String
Dim Argument As Variant, Zelle As Variant
For Each Argument In Werte()
If TypeName(Argument) = "Range" Then
For Each Zelle In Argument
Verketten2 = Trim(Verketten2 & " " & Zelle)
Next Zelle
Else
Verketten2 = Trim(Verketten2 & " " & Argument)
End If
Next Argument
End Function
Gruss- Micha
For-Each-Laufvariable muss vom Typ Variant oder...
07.09.2010 16:53:32
Luc:-?
…ein Objekt sein, Micha;
denke, dass du das so meinst… ;-)
Gruß Luc :-?
Anzeige
AW: For-Each-Laufvariable muss vom Typ Variant oder...
07.09.2010 17:45:12
MichaV
kann sein, Luc,. Frag mich trotzdem warum ich so konsequent ignoriert werde :o(
Wenigstens scheint hier mal ordentlich die Sonne. Gruss- Micha
...Hier auch! Das Andere passiert mir...
08.09.2010 01:22:33
Luc:-?
…auch des öfteren, Micha;
ist schon schlimm, dass immer mehr noch jg Leute von heimtückischen, man kann schon sagen Volksleiden, viell. gar -seuchen befallen wdn wie unheilbare Ignoranz, Beitragsblindheit, Forumssprachlosigkeit, Grußlos-Syndrom usw usf… ;->
Gruß Luc :-?
Sonnig, aber kalt! Wird aber wieder nass und nicht warm… !-/
AW: ...Hier auch! Das Andere passiert mir...
08.09.2010 07:49:34
MichaV
nja Luc, ich finde schon das hier ist ein besonderer Fall. Die von Dir aufgezählten Leiden kann ich hier nicht erkennen, er hat ja geantwortet, und nett dazu. Was mich wundert ist dass es 2 bis auf ein Detail identische Lösungen (ich könnte, wenn ichs nicht besser wüsste, behaupten dass N. bei mir abgeschrieben hat :o) ) gibt, aber bedankt wird sich explizit nur bei einer. Wenn ich dann aber die fast an Arschkriecherei grenzenden Lobhuldigungen lese wird mir einiges klar. Wir geben uns hier nur mit der Elite ab, alles andere wird keines Wortes gewürdigt. Greit for meg.
Gruss- Micha (immernoch Hochsommer, 22 Grad und seit 4 Tagen kein Regen)
Anzeige
...Dafür wird dann manchmal reagiert,...
08.09.2010 01:26:25
Luc:-?
…wenn ich's gar nicht erwarte und es auch nicht nötig wäre (s. unten!)…
Merkwürdig, merkwürdig, Micha…

Sorry, ich wollte nicht undankbar erscheinen
08.09.2010 09:41:08
Martin
Hallo Luc:?, hallo Micha,
bitte entschuldigt, ich hätte mich selbstverständlich auch bei euch bedanken müssen. Schließlich habt ihr euch mit meinem Problem beschäftigt und mir - wie eben auch Nupumuk - versucht zu helfen. Ich war mit einer sehr lahmen Verbindung (GPRS) im Internet und habe einfach auf die eine vom Forum geschickte Antwort-Mail geklickt und bin auf Nepumuks Antwort gestoßen, auf welche ich wiederum geantwortet habe. Ich hatte aber nicht die Absicht gegenüber den anderen Helfern ignorant oder undankbar sein. Darum bitte ich um Entschuldigung und hoffe, dass ihr euch trotzdem auch künftig mit meinen Fragen beschäftigen werdet. Ich würde Euch ebenfalls helfen, aber meine Kenntnisse sind eurem Wissen vermutlich weit unterlegen. Ich hoffe, dass ihr meine Entschuldigung annehmt.
Viele Grüße
Martin
Anzeige
AW: Sorry, ich wollte nicht undankbar erscheinen
08.09.2010 10:11:46
MichaV
Hallo Martin,
nun hat sich doch einiges aufgeklärt und ich bin froh dass ich nicht Recht hatte mit meiner Behauptung. Es lag also an der Technik, das war ja alles was ich wissen wollte.
Viele Grüsse - Micha
Danke
08.09.2010 10:25:51
Martin
Hallo Micha,
ich bin erleichtert, dass jetzt wieder alles in Ordnung ist. Vielen Dank für deine Rückmeldung!
Schöne Grüße
Martin
AW: Übergabe von Argumenten an Funktion
06.09.2010 21:39:33
Argumenten
Hallo Martin,
einfach so:
Function Verketten2(ParamArray Werte() As Variant) As String
    
    Dim Argument As Variant, Zelle As Variant
    
    For Each Argument In Werte()
        If TypeOf Argument Is Range Then
            For Each Zelle In Argument
                Verketten2 = Trim$(Verketten2 & " " & Zelle.Value)
            Next Zelle
        Else
            Verketten2 = Trim$(Verketten2 & " " & Argument)
        End If
    Next Argument
    
End Function

Gruß
Nepumuk
Anzeige
AW: Übergabe von Argumenten an Funktion
06.09.2010 22:01:58
Argumenten
Hallo Nepumuk,
vielen Dank für deine Hilfe, genau so hatte ich es mir vorgestellt.
Viele Grüße
Martin
AW: Übergabe von Argumenten an Funktion
06.09.2010 22:13:59
Argumenten
Hallo Martin,
ich will jetzt nicht die beleidigte Leberwurst spielen, aber gibts einen Grund warum Du Dich ausdrücklich nur bei Nepumuk bedankst?
Gruss- Micha
...doch noch eine (einfache) Frage
06.09.2010 22:16:43
Martin
Hallo Nepumuk,
ich kann den Code von dir gut nachvollziehen. Die "TypeOf"-Abfrage kannte ich bislang noch nicht.
Aber was bedeutet das Dollarzeichen hinter dem "Trim"?
Schöne Grüße
Martin
AW: ...doch noch eine (einfache) Frage
06.09.2010 22:40:29
Nepumuk
Hallo Martin,
bei String-Funktionen (Trim, Left, Mid .....) gibt es zwei Versionen. Die ohne $ gibt einen Variant - Typ String, die mit $ einen String zurück. Ein String benötigt weniger Speicherplatz und ist daher schneller.
TypeOf ist im übrigen auch wesentlich schneller als die TypeName - Abfrage.
Gruß
Nepumuk
Anzeige
AW: ...doch noch eine (einfache) Frage
07.09.2010 00:38:28
Martin
Hallo Nepumuk,
vielen Dank für deine Antwort. Man merkt, dass du ein Profi bist. Wenn mich nicht alles täuscht, hast du doch auch die QuickSort-Funktion zum Sortieren zweidimensionaler Arrays geschrieben?! Hut ab vor deinem Wissen!
Viele Grüße
Martin
...Da gibt's mehrere Vss m.mehreren Autoren!
07.09.2010 16:56:52
Luc:-?
Hi,
vgl mal bspw Wikipedia und Spotlight!
Gruß Luc :-?
AW: ...Da gibt's mehrere Vss m.mehreren Autoren!
07.09.2010 23:09:28
Martin
Hallo Luc,
ich verstehe nicht ganz was du meinst. Wofür steht die Abkürzung "Vss" und warum soll ich Wikipedia mit Spotlight vergleichen?
Viele Grüße
Martin
AW: ...mach dir keinen Kopf!
07.09.2010 23:48:43
Gerd
Hallo Martin,
das soll heißen, es gibt ein noch ein paar andere Quicksort-Routinen.
Er macht halt viele Eigenkreationen mit u. bei Abkürzungen! :-)
Gruß Gerd
Anzeige
AW: ...mach dir keinen Kopf!
08.09.2010 09:46:31
Martin
Hallo Gerd,
vielen dank für deine Erklärung. Ich dachte bislang, dass es nur eine Quicksort-Routine gäbe und diese von Nepumuk stammt. Ich hatte damals (ist schon einige Jahre her) lange nach eine Möglichkeit gesucht ein zweidimensionales Array zu sortieren und bin an mehreren Stellen nur auf Nepumuks Quicksort-Routine gestoßen. Daraus entstand meine falsche Schlußfolgerung. Das zeigt mal wieder mein Unwissen....
Viele Grüße
Martin
AW: ...Da gibt's mehrere Vss m.mehreren Autoren!
08.09.2010 18:44:49
Nepumuk
Hallo,
der Quicksort stammt nachweislich nicht von mir. Mein Beitrag war, den Quicksort so umzubauen dass mehrere Spalten damit sortieren werden können. Daher taucht mein Name in dem Zusammenhang des Öfteren im Netz auf.
Gruß
Nepumuk
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige