Excel / VBA - A Najít hledání s vícenásobným návratem

Jednoduché hledání vrací, které vrátí první souřadnici.
  • V některých situacích je nutné znát všechny podrobnosti o zjištěných událostech.
  • Toho je dosaženo pomocí níže uvedené funkce.

Ve veřejném modulu

 'Retourne toutes les adresses trouvées dans la recherche' WkbN = nominace na classeur, avec cette donnée la fonction peut être mise dans un xla 'WksN = nom na laguně' Plage = les coordonnées de la plage à parcourir. 'Retour dans le tableau donner en argument. Funkce RechFind (ByVal Cle jako řetězec, ByVal WkbN jako řetězec, ByVal WksN jako řetězec, ByVal Plage jako řetězec, ByRef TBadress () jako varianta) As Long Dim Cherche, Ix As Long, PrAddress Se sešity (WkbN) .Sheets (WksN) .Range (Plage) Set Cherche = .Find (Cle) Pokud není Cherche nic, pak PrAddress = Cherche.Address Do ReDim Zachovat TBadress (Ix) TBadress (Ix) = Cherche.Address Set Cherche = .FindNext (Cherche) Ix = Ix + 1 Loop Zatímco není Cherche nic a Cherche.Address PrAddress Konec If End S 'nombre d'occurence (s) trouvée (s), Retour 0 si aucune výskyt RechFind = Ix Set Cherche = Nic' Libére la mémoire occupée par l ' objet. Funkce End 

Přidat do sešitu Xla.

Použití makra

 Sub RechMulti () Dim R jako dlouhý, TB () Dim i jako celé číslo R = RechFind ("12 *", ThisWorkbook.Name, "Feuil1", "B1: B500", TB ()) Pokud R> 0 pak pro i = 0 Do R - 1 'ou ubound (TB)' Vzorové listy ("Feuil1") Buňky (i + 4, 5) = Rozsah (TB (i)) Řádek Následující i Konec Pokud Konec Sub 

Pomocí tlačítka volání

 Private Sub CommandButton1_Click () Dim R jako dlouhý, TB () Dim i jako celé číslo ("E4: E20") ClearContents R = RechFind (rozsah ("E2"), ThisWorkbook.Name, ActiveSheet.Name, Range ("B1 : B500 ") Adresa, TB ()) Pokud R> 0 Pak Pro i = 0 až R - 1 'ou ubound (TB)' Vzorové listy (" Feuil1 ") Buňky (i + 4, 5) = Rozsah ( TB (i)) Řádek Další i Konec Pokud Konec Sub 

Stažení

Stáhněte si testovací sešit: zde.

Předchozí Článek Následující Článek

Nejlepší Tipy