Méthode Range.Fell dans Excel VBA renvoie une mauvaise ligne

J'essaie de searchr une string dans Excel en utilisant VBA .. pour l'ex.
Ma fiche contient datatables suivantes

1.Lalit 2.Lalit 

S'il n'y a qu'une seule ligne avec l'apparition de lalit elle donne un résultat correct alors qu'il y a 2 lignes avec la même string, elle renvoie le 2ème résultat au lieu de la première. Aidez-moi à renvoyer la ligne correcte.

Selon un article MSDN sur Range.Find (), vous pouvez spécifier la cellule après laquelle vous souhaitez lancer la search. Vous pouvez également spécifier le sens de search. En supposant que vous avez une gamme de A1:A500 et que vous souhaitez find la première instance de Latit vous pourriez utiliser:

 Range("A1:A500").Find("Test", Range("A500"), , , xlByRows, xlNext).Row 

Cela démarre la search à A500 , qui s'ajoute automatiquement à la première ligne. Excel renvoie le premier résultat qu'il peut find, donc vous obtiendrez 1 comme réponse (en supposant que Latit soit en A1 )

En grande partie, la même base que JNevill, mais assurant

  • la search commence après la dernière cellule de la colonne A (c'est-à-dire commence à partir de A1)
  • gère «pas de correspondance» – que Find doit toujours être testé avec

code

 Sub FindEx() Dim strFind As Ssortingng Dim rng1 As Range strFind = "Lalit" Set rng1 = Cells.Find(strFind, Cells(Rows.Count, "A"), xlValues, xlPart, , xlNext) If Not rng1 Is Nothing Then MsgBox "first value of " & strFind & " found in " & rng1.Address(0, 0) End Sub