Findnext in Fuction/Sub

02/10/2007 - 15:56 von ron | Report spam
Hallo,

ich habe folgendes Problem mit der Findnext Methode.

Tabelle1 enthàlt folgende Werte in A3:A12

P1
P2
P2
P3
P1
P3
P2
P1
P1
P3

Ich möchte zàhlen wie oft "P2" vorkommt.

Als Sub funktioniert alles ohne Probleme:

Sub MySCount()
On Error GoTo errorHandler
Dim sel As Range
Set sel = Selection
Dim c As Range
Dim firstAddress As String
Dim MyCount As Integer

MyCount = 0
With sel
Set c = .Find("P2", After:=sel(1), LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
MyCount = MyCount + 1
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
Exit Sub
errorHandler:
MsgBox "There has been an error: " & Error() & Chr(13) _
& "Ending Sub...Please try again", 48
End Sub

Im Einzelschrittmodus zàhlt MyCount bis 3 und dann wird die Sub ohne
Fehler verlassen.
Da ich die Anzahl aber in einer Berechnung verwenden will möchte ich
das ganze als Funktion machen:

Function MyCount(sel As Range) As Integer
On Error GoTo errorHandler
Dim c As Range
Dim firstAddress As String

MyCount = 0
With sel
Set c = .Find("P2", After:=sel(1), LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
MyCount = MyCount + 1
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
Exit Function
errorHandler:
MsgBox "There has been an error: " & Error() & Chr(13) _
& "Ending Sub...Please try again", 48
End Function

Die Funktion wird mit =mycount(A3:A12) aufgerufen, zàhlt nur bis 1 und
bricht mit "Objektvariable oder With-Blockvariable nicht festgelegt"
ab. Im Einzelschrittmodus sehe ich das die FindNext Methode im 1.
Aufruf den Wert Nothing liefert, daher der Fehler. Aber warum Nothing
in einer Funktion aber den richtigen Wert in der Sub?

In einem anderen Beitrag habe ich gelesen das Excel 2000 einen Find-
Bug hat, Excel 2002 (was ich verwende) sollte aber funktionieren.
Hat damit jemand Erfahrungen gemacht?

Vielen Dank für eure Hilfe,
Ronald
 

Lesen sie die antworten

#1 Claus Busch
02/10/2007 - 16:14 | Warnen spam
Hallo Ron,

Am Tue, 02 Oct 2007 06:56:19 -0700 schrieb ron:

Ich möchte zàhlen wie oft "P2" vorkommt.



warum nimmst du nicht die eingebaute Funktion ZÄHLENWENN?


Mit freundlichen Grüssen
Claus Busch
Win XP Prof SP2 / Vista Ultimate
Office 2003 SP2 / 2007 Ultimate

Ähnliche fragen