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

Function liefert nur "#Wert" zurück

Function liefert nur "#Wert" zurück
08.12.2020 13:34:39
Der_Rudi
Hallo zusammen.
ich habe eine kleine Function geschrieben, die aber leider nicht das gewünschte Ergebnis liefert.
Ich bin blutiger Anfänger was VBA anbelangt.
Diese Ziel der Function soll sein, dass aus einer gegebene Liste an "Domänen" verglichen wird, ob der aktuell Zellwert einem Wert in der Liste enspricht. Ist die der Fall, dass soll "OK" ausgegen werden, ansonsten "NOK".
Code:

Option Explicit
Function checkvalidDomain(Text As Range)
Dim c As Variant
For Each c In Worksheets("Domänen").Range("D3:D13").Cells
MsgBox (c)
If Text = c Then
Text = "OK"
Exit For
Else: Text = "NOK"
End If
Next
End Function

Habrt ihr eine Idee?
Danke im Voraus!
Viele Grüße
Der_Rudi

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Function liefert nur "#Wert" zurück
08.12.2020 14:03:11
Daniel
Hi
mal abgesehen davon, dass du das einfacher mit ZählenWenn erledigen könntest (aber zum Üben vielleicht ganz gut):
du musst das Ergebnis ("OK", "NOK") an die Funktion selbst zurückgeben:
die Funktion verhält sich innerhalb des Codes wie eine Variable und dieser Variable muss das Ergebnis zugewiesen werden:

checkvalidDomain = "OK"
der Fehler kommt, weil TEXT ja eine Zelle ist und wenn du TEXT einen Wert zuweist, wird diese Zelle geändert.
Function, die du innerhalb einer Formel in Excelzellen einsetzt, dürfen das aber nicht. Sie dürfen nur das Ergebnis zurückgeben (wie oben gezeigt) und ansonsten keinerleich "Außenwirkung" haben.
Das unterscheidet Function in Formeln von Functions, die innerhalb eines VBA-Makros verwendet werden
(innerhalb von VBA sind Functions auch keine echten Functions der reinen Lehre nach, sondern eher Subs mit Rückgabewert)
Gruß Daniel
Anzeige
AW: Function liefert nur "#Wert" zurück
08.12.2020 14:07:50
Engelchen
Hallo Rudi,
versuche es mal so (ungetestet):
Option Explicit
Function checkvalidDomain(Text As Range)
Dim c As Variant
For Each c In Worksheets("Domänen").Range("D3:D13").Cells
MsgBox (c)
If Text = c Then
checkvalidDomain = "OK"
Exit For
Else
checkvalidDomain = "NOK"
End If
Next
End Function
Hilft´s?
VG!
Engelchen
AW: Function liefert nur "#Wert" zurück
08.12.2020 14:21:07
onur
Wenn du den Bereich auch noch mit übergibst, ist die Funktion nicht nur für
Worksheets("Domänen").Range("D3:D13") brauchbar.
Public Function checkvalidDomain(rng As Range, ByVal Text As Variant)
Dim c As Variant
For Each c In rng.Cells
If Text = c Then
checkvalidDomain = "OK"
Exit For
Else: checkvalidDomain = "NOK"
End If
Next
End Function

Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige