Excel / VBA - A Find søgning med flere afkast

En enkel Find søgning returnerer, der returnerer den første koordinat.
  • I nogle situationer er det nødvendigt at kende alle detaljer om forekomster fundet.
  • Dette opnås med nedenstående funktion.

I et offentligt modul

 'Returnerer til adresser, hvor du kan søge efter' WkbN = Du er klassificeret, og du har et navn til din fonction peut. Du kan også se et nyt navn: WksN = nom de la feuille 'Plage = les koordinater af la plage à parcourir. 'Retour dans le tableau donner en argument. Funktion RechFind (ByVal Cle As String, ByVal WkbN Som String, ByVal WksN Som String, ByVal Plage Som String, ByRef TBadress () Som Variant) Som Lang Dim Cherche, Ix Så Langt, PrAddress Med Workbooks (WkbN) .Sheets (WksN) .Range (Plage) Indstil Cherche = .Find (Cle) Hvis Ikke Cherche Er Intet Så PrAddress = Cherche.Address Gør ReDim Behold TBadress (Ix) TBadress (Ix) = Cherche.Address Set Cherche = .FindNæste (Cherche) Ix = Ix + 1 Loop While Not Cherche er Intet og Cherche.Address PrAddress End Hvis End med 'nombre d'occurence (s) trouvée (s), Retur 0 si aucune forekomst RechFind = Ix Set Cherche = Intet' Libére la mémoire occupée par l ' Objet. Slutfunktion 

Tilføj til en Xla-projektmappe.

Brug af en makro

 Sub RechMulti () Dim R Så længe, ​​TB () Dim i som helhed R = RechFind ("12 *", ThisWorkbook.Name, "Feuil1", "B1: B500", TB ()) Hvis R> 0 Then For = 0 til R - 1 'ou ubound (TB)' exemple Sheets ("Feuil1"). Celler (i + 4, 5) = Range (TB (i)). 

Brug en opkaldsknap

 Private Sub CommandButton1_Click () Dim R så lang, TB () Dim i som Integer Range ("E4: E20"). ClearContents R = RechFind (Range ("E2"), ThisWorkbook.Name, ActiveSheet.Name, Range : B500 "). Adresse, TB ()) Hvis R> 0 Then For i = 0 til R - 1 'ou ubound (TB)' exemple Sheets (" Feuil1 "). Celler (i + 4, 5) = Range TB (i)). Row Næste slutter jeg hvis End Sub 

Hent

Download testarbejdsbogen: her.

Forrige Artikel Næste Artikel

Top Tips