Parameterübergabe
Guten Tag Zusammen,
ich brauch mal wieder eure Hilfe.
Und zwar suche ich mit der Methode find entweder nach "Logbuch" oder "logbook". Falls nur eins von den Kriterien gefunden wird soll die Variable blFounded auf true gesetzt werden. Und wieder an die Sub zurück geschickt werden.
Das Problem ist die variable wird auf true gesetzt wenn es was findet aber in der Sub ist sie wieder auf false.
Schonmal Danke für Eure Hilfe
Gruß Gimli3311
ich brauch mal wieder eure Hilfe.
Und zwar suche ich mit der Methode find entweder nach "Logbuch" oder "logbook". Falls nur eins von den Kriterien gefunden wird soll die Variable blFounded auf true gesetzt werden. Und wieder an die Sub zurück geschickt werden.
Das Problem ist die variable wird auf true gesetzt wenn es was findet aber in der Sub ist sie wieder auf false.
Schonmal Danke für Eure Hilfe
Option Explicit
Dim blFounded As Boolean
Sub main()
blFounded = False
'Ruft Funktion suche auf
blFounded = suche(blFounded)
'Wenn blFounded = True wurde was gefunden
If blFounded = True Then
MsgBox "Es wurde was gefunden"
Else
MsgBox "Es wurde nichts gefunden"
End If
End Sub
Function suche(ByRef blFounded As Boolean)
Dim c As Object, d As Object
Dim firstAddress As String
With Worksheets(5).Range("a1:m60")
'Suche nach Logbuch
Set c = .Find("Logbuch", LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
blFounded = True
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
'Suche Nach Logbook
Set d = .Find("Logbook", LookIn:=xlValues)
If Not d Is Nothing Then
firstAddress = d.Address
Do
blFounded = True
Set d = .FindNext(d)
Loop While Not d Is Nothing And d.Address <> firstAddress
End If
End With
End Function
Gruß Gimli3311
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 265017
Url: https://administrator.de/forum/parameteruebergabe-265017.html
Ausgedruckt am: 11.01.2025 um 15:01 Uhr
5 Kommentare
Neuester Kommentar
Du gibst aus der Function ja gar nichts zurück ...
Du musst dich schon entscheiden, den Wert aus der Function zurückzugeben, oder die Variable via ByRef zu ändern
Zeile 7 einfach ändern auf:
Dann klappt's auch mit dem Nachbarn ...
Gruß jodel32
Du musst dich schon entscheiden, den Wert aus der Function zurückzugeben, oder die Variable via ByRef zu ändern
Zeile 7 einfach ändern auf:
suche(blFounded)
Gruß jodel32
Dir muss man aber auch alles vorkauen ...
Ist sowieso zuviel unnützes Zeug in deiner Function ...
Hier die Variante mit Rückgabewert aus der Function
p.s. Vergangenheitsformen musst du auch noch lernen
founded
Ist sowieso zuviel unnützes Zeug in deiner Function ...
Hier die Variante mit Rückgabewert aus der Function
Option Explicit
Dim blFounded As Boolean
Sub main()
'Ruft Funktion suche auf
blFounded = suche()
'Wenn blFounded = True wurde was gefunden
If blFounded = True Then
MsgBox "Es wurde was gefunden"
Else
MsgBox "Es wurde nichts gefunden"
End If
End Sub
Function suche() as Boolean
Dim c As Object, d As Object
With Worksheets(5).Range("a1:m60")
'Suche nach Logbuch
Set c = .Find("Logbuch", LookIn:=xlValues)
If Not c Is Nothing Then
suche = True
Exit Function
End If
'Suche Nach Logbook
Set d = .Find("Logbook", LookIn:=xlValues)
If Not d Is Nothing Then
suche = True
Exit Function
End If
End With
End Function
founded
Moin,
die korrekte Syntax ist:
Zeile 7:
blFounded = suche()
Zeile 16:
Function suche()
nach Zeile 16
Dim blFounded As Boolean
nach Zeile 39
suche = blFounded
lg
Slainte
P.S.:
Und noch nebenbei (weils mir echt in den Augen weh tut )
die Vergangenheit von Finden auf Englisch ist "found" nicht "founded" (autsch)
P.P.S: Mist, zulangsam :/
die korrekte Syntax ist:
Zeile 7:
blFounded = suche()
Zeile 16:
Function suche()
nach Zeile 16
Dim blFounded As Boolean
nach Zeile 39
suche = blFounded
lg
Slainte
P.S.:
Und noch nebenbei (weils mir echt in den Augen weh tut )
die Vergangenheit von Finden auf Englisch ist "found" nicht "founded" (autsch)
P.P.S: Mist, zulangsam :/