WorksheetFunction.Find Methode
#1
Hallo Leute,
ich möchte nur mal kurz die WorksheetFunction.Find - Methode ausprobieren. Aber es klappt leider nicht. Was mache ich falsch?


Code:
Sub Test()
Dim vb As Variant

vb = WorksheetFunction.Find("Tabelle1", "D1:H19", "Computer")
Debug.Print vb

End Sub
Top
#2
Hallo,

naja, VBA ist etwas anderes als Formeln! So funktioniert es, wenn Du die Adresse willst:


Code:
Option Explicit

Sub Test()
Dim RaB As Range
Dim rng As Range
Set rng = Sheets("Tabelle3").Range("D1:H19")
Set RaB = rng.Find(what:="Computer", lookat:=xlWhole)

Debug.Print RaB.Address

End Sub
Man kann dazu auch in der Hilfe nachschlagen!
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Top
#3
Hallo Christa,

die Find-Methode muss immer sauber (d. h. komplett) verwendet werden:

Code:
Option Explicit

Sub Test()

Dim WkSh     As Worksheet
Dim rZelle   As Range
Dim sFundst  As String
   
'   vb = WorksheetFunction.Find("Tabelle1", "D1:H19", "Computer")

  Set WkSh = ThisWorkbook.Worksheets("Tabelle1")
 
  With WkSh.Range("D1:H19")
     Set rZelle = .Find(What:="Computer", LookAt:=xlWhole, LookIn:=xlValues)
     If Not rZelle Is Nothing Then
        sFundst = rZelle.Address
        Do
           Debug.Print rZelle.Address
           Set rZelle = .FindNext(rZelle)
        Loop While Not rZelle Is Nothing And rZelle.Address <> sFundst
      Else
        MsgBox "Der gesuchte Begriff ""Computer"" wurde nicht gefunden.", _
           48, "   Hinweis für " & Application.UserName
     End If
  End With


End Sub

Gruß Peter
Top
#4
Eine Excel Formel <> eine Excel Methode.


Code:
Sub M_snb()
   MsgBox Application.Find("Tabelle1", "keineTabelle198")
   MsgBox Application.Find("Tabelle1", "keinetabelle198")
   msgbox instr("keineTabelle198","Tabelle1")
   msgbox instr("keinetabelle198","Tabelle1")

   MsgBox Sheet1.Cells.Find("string", , , 1).Address
End Sub
Top
#5
Hallöchen,

danke zunächst mal für eure Mühe. Diese Suchmöglichkeiten kannte ich allerdings schon. Ich dachte dass WorksheetFunction.Find
neue Wege eröffnen würde, fand aber nichts im Internet. Ich gehe jetzt davon aus, dass die Funktion nur für die Tonne reicht.


Ergänzung / Verdeutlichung fürs Forum im allgemeinen:


Code:
Sub Groß_und_Klein_Bei_InStr_Suche_im_String()
'Einfluß der Groß- und Kleinschreibung je nach Methodenvergleich auf die Suchergebnisse:
Debug.Print "Groß-Klein-egal Stelle:" & InStr(1, "Satz der Wort Tabelle enthält", "tAbelLe", vbTextCompare)
Debug.Print "Groß-Klein-nichtegal " & InStr(1, "Satz der Wort Tabelle enthält", "tAbelLe", vbBinaryCompare)
End Sub
Top
#6
Hallo,

Zitat:dass die Funktion nur für die Tonne reicht

das Einzige, was momentan für die Tonne reicht, sind Deine Erklärungen. Keiner weiß was Du willst und woran es klemmt. Find in VBA hat nichts mit FINDEN in den Formeln zu tun. Groß- und Kleinschreibung ist sowohl in Formeln als auch in VBA häufig bedeutungslos. Wenn man darauf Wert legt, dann muß man sich auch der entsprechenden Funktionen bedienen.
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Top
#7
@BoskoBiati

Gut, dann machen wir es doch anders herum. Gebt mir am besten irgendwelche Beispiele was man mit "WorksheetFunction.Find" machen kann.
Denn genau das ist ja das Problem. Ich weiß es nicht!! Folglich wäre das Lernen an Beispielen das Beste.


[url=http://www.clever-excel-forum.de/User-BoskoBiati][/url]
Top
#8
Hallo,

vielleicht bemühst Du ja mal die Suche im Forum, da gibt es genug Beispiele!
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Top
#9
Dann schau doch mal bitte: http://www.clever-excel-forum.de/Thread-...6#pid36266
Top
#10
@SNB
Sorry SNB auch wenn ich deinen Code sonst sehr schätze aber das sehe ich hier nicht.
WorksheetFunction.Find()
d.h. für mich ich habe eine Methode von WorksheetFunction, schreibe also in meinem Code WorksheetFunction.Find dann schreibe ich etwas hübsches in die sich anschließenden Klammern und bekomme irgendetwas hübsches heraus. Das wars.

Analogie z.B. bei der Erzeugung von Zufallszahlen:

av = Application.WorksheetFunction.RandBetween(1, 20)


Ich nehme die Funktion RandBetween schreibe was hübsches in die Klammern rein und bekomme die Zufallszahl über einen angegeben Bereich  hinaus.
That's it.
Wo steht das hier??
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste