Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
180to184
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
180to184
180to184
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Function vs. Sub

Function vs. Sub
17.11.2002 16:21:58
wolfgam
Hallo VBA Freunde,
kann mir jemand folgendes Verhalten erklären. Unten stehende Wertzuweisung funktioniert in einem Makro einwandfrei. Als Teil in einer Function geht das nicht. Warum ist das so?

Sub Test() <-- hier funktionierts
ActiveSheet.Range("B1").Value = 1
end Sub

function Test() as string <-- hier funktionierts nicht
ActiveSheet.Range("B1").Value = 1
Test = True
end function

(Ich möchte eigentlich in Abhängigkeit vom Ergebnis einer Funktion den Wert einer beliebigen Zelle füllen)

Vielen Dank
Wolfgang

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Function vs. Sub
17.11.2002 16:34:41
Michael Schefföer
Hallo,

Du kannst Test nicht True zuweisen, wenn es als String definiert ist, dann musst Du es als Bollean definieren. Im ersten Fall gibt Test einen Variant zurück, weil es nicht dimensioniert ist.

Goldene Regel für Anfänger: immer Option Explicit nutzen!!!!

Gruß

Micha

Re: Function vs. Sub
17.11.2002 16:34:48
Michael Schefföer
Hallo,

Du kannst Test nicht True zuweisen, wenn es als String definiert ist, dann musst Du es als Bollean definieren. Im ersten Fall gibt Test einen Variant zurück, weil es nicht dimensioniert ist.

Goldene Regel für Anfänger: immer Option Explicit nutzen!!!!

Gruß

Micha

Re: Function vs. Sub
17.11.2002 16:37:21
Ramses
Hallo Wolfgang,

Du hast die funktion schon falsch aufgebaut:

Gruss Rainer

Anzeige
Re: Function vs. Sub
17.11.2002 16:38:56
Wolfgam
Tippfehler meinerseits:
Es muß natürlich heißen:

function Test() as string <-- hier funktionierts nicht
ActiveSheet.Range("B1").Value = 1
Test = "True"
end function

Die Zuweisung funktioniert aber trotzdem nicht...

Wolfgang

Re: Function vs. Sub
17.11.2002 16:39:49
Michael Scheffler
Hallo Ramses(?),

was soll eine Wertzuweisung von Boolean nach String, das ist mit Verlaub gesagt: Sch...

Gruß

Micha

Re: Function vs. Sub
17.11.2002 16:43:15
Michael Scheffler
Hallo Wolfgang,

sorry, so gehts nicht:

Dann muss die Funktion einen Typ Variant wiedergeben!!!!


Und dann kannst Du das Ergebnis prüfen, ob String oder Variant, wenn Du in der Tabelle einen Wag´hrheitswert haben möchtest, dann sollte die Funktion entwefder Variant oder Bollean zurückgeben!!!

Grß

Micha

Anzeige
Re: Function vs. Sub
17.11.2002 16:48:52
Hans W. Hofmann
Weil wir gerade bei flasch sind...
Das man einer Funktion as String nicht gerade einen Boolschen-Wert zuweisen sollte wurde ja schon gesagt. Eine Funktion kann prinzielle keine Werte außerhalb ihres lokalen Bereiches schreiben. Wenn sowas möglich wäre hätte man bei einer Tabellenfunktion eine Endlosschleife und bei einer VBA-Funktion einen schweren Anwendungsfehler, wie Windows immer sagt.
Für eine Tabellenfunktion sind fehlende Übergabeargumente ein Killer - sie wird nur einmal, bei der Eingabe berechent und dann nie wieder - eidieweil ohne Änderung von Übergabedaten die Funktion nicht neu berechnet wird - XL hätte sonst sehr viel zu tun. Man kann aber zumindest ein Dummy-Argument übergeben - z.B. die Zeit, die ändert sich bekanntlich kontinuierlich...


Gruß HW

Anzeige
Re: Function vs. Sub
17.11.2002 16:57:06
Wolfgam
Vielen Dank Jungs für die vielen Antworten,

die entscheidende Antwort kam von Hans.W.Hoffmann. Ich habe versucht einen Wert außerhalb des Gültigkeitsbereiches der Funktion zu beschreiben....

Wolfgang

Ob Sch.... oder nicht: Dein Ton ist fehl am Platz
17.11.2002 20:35:38
Ramses
Hallo Micha,

Du solltest deinen Ton mit gegenüber etwas zügeln !
Es liegt nicht an mir zu überprüfen ob das Sch... ist oder nicht. Das muss der jeweilige Anwender selbst entscheiden.

Tatsache ist das die obige Funktion so funktioniert,... auch mit der Zuweisung als String

Ob es Sinn macht ein boolesche Variable as String zu übergeben ist eine andere Sache.

Gruss Rainer

Re: Function vs. Sub
17.11.2002 20:39:47
Ramses
Hallo Hans,

das ist mir auch klar. Aber ich weiss nicht was er mit der Funktion tun will.

Wen in B1 = 1 steht und in B2 die Funktion =Test() erfolgt in der Zelle B2 die Ausgabe "Wahr" als String.

Das ist alles.
Über Sinn und Unsinn eine booleschen Variable als String zu definieren entscheide nicht ich, sondern der jeweilige Anwender.

Gruss Rainer

Anzeige

68 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige