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

Unterschied Function und Sub

Unterschied Function und Sub
16.01.2005 09:37:52
Reinhard
Moin Wissende,
ich weiss eine Function kann nurin der Zelle etwas reinschreiben, wo sie aufgerufen wird.
Aber warum kann sie nicht in anderen Zellen etwas suchen?
Das hat mich letztens sehr viel zeit gekostet, da ich nicht darauf kam warum nichts gefunden wird :-(
Nachstehend ist ein Beispiel Code für Sub und Function, die Sub läuft wie erwartet,
bei der Function bleibt c immer leer( =nothing) und der IF-Zweig wird nicht abgearbeitet.
Gruß aus dem schönwettrigen Meinhatten.
Reinhard
Sub testsub()
With Worksheets(1).Range("a1:a500")
Set c = .Find(2, LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
MsgBox c.Address
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
End Sub
Function testfun()
With Worksheets(1).Range("a1:a500")
Set c = .Find(2, LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
MsgBox c.Address
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
testfun = "huhu"
End Function

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Find funktioniert in Functions erst ab xl2002...
Boris
Hi Reinhard,
...aber warum das so ist, bleibt ein Geheimnis von Billy.
Wohlgemerkt - bezieht sich nur auf UDFs, die in der Tabelle verwendet werden sollen. Bei Functions, die innerhalb VBA Verwendung finden, geht Find problemlos.
Grüße Boris
danke dir für die Info, ich hab jetzt probiert...
Reinhard
...Billi auszutricksen, ging aber nicht *gg
Merci Boris :-)

Function test2fun()
Call testsub
End Function


Sub testsub()
MsgBox testfun(2)
End Sub


Function testfun(x As Integer)
With Worksheets(1).Range("a1:a500")
Set c = .Find(2, LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
MsgBox c.Address
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
testfun = "huhu"
End Function

Anzeige

33 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige