Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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
Antworten 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.
Antworten 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
Antworten 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
Antworten 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
Antworten 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.
Antworten 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]
Antworten 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.
Antworten Top
#9
Dann schau doch mal bitte: http://www.clever-excel-forum.de/Thread-...6#pid36266
Antworten 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??
Antworten Top


Gehe zu:


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