Přeskočit navigaci | Přeskočit na novinky
     

Jste zde: Úvodní stránka » excel » vba-listy-bunky » find-hledej-excel-vba

Find hledej - Excel VBA

Videokurzy Excel

Ve spolupráci se SEDUO jsem vytvořil několik videokurzů:

Jak hledat v Excel pomocí Metody Find.

Doplněno 2.6.2016

Úvodem do hledání (Find)

Find - Excel VBA

Potřebujete-li vyhledávat pomocí VBA. Od teorie přes praktické příklady až po tipy a triky. Pro přehlednost je článek rozdělen na jednotlivé kapitoly:

Teorie Find

Trocha teorie ohledně Find.

Syntaxe

Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)
Jméno Poviné/Volitelné Popis
What Poviné Hodnota kterou hledáte
After Volitelné Buňka od které chcete začít hledat. Začne se až po této buňce ( ve specifikované buňce nen hledáno ). Pokud není určeno hledání začne v levém horním rohu zadaného rozsahu.
LookIn Volitelné  
LookAt Volitelné ( xlWhole, xlPart )
SearchOrder Volitelné ( xlByRows , xlByColumns )
SearchDirection Volitelné ( xlNext, xlPrevious )
MatchCase Volitelné ( True , False – defaultně nastaveno).
MatchByte Volitelné  
SearchFormat Volitelné  

Označ hodnotu

Jak najít ve vymezené oblasti hodnotu 4 a označit ji. Najde tu první.

Dim rng As Range Range("A1:C70").Select Set rng = Selection.Find(What:="4") If Not rng Is Nothing Then rng.Select End If

Označ buňky se vzorcem. Jak najít a označit buňky, které obsahují vzorec.

For Each cl In ActiveSheet.UsedRange If cl.HasFormula() = True Then cl.Interior.ColorIndex = 21 End If Next cl

Exituje hledaná hodnota v oblasti?

Informovat za bylo nebo nebylo nalezeno. Pomocí dialogového okna.

Dim rng As Range Set rng = Cells.Find(What:="4", LookIn:=xlFormulas, LookAt:= _ xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _ , SearchFormat:=False) If Not rng Is Nothing Then MsgBox ("Nalezeno") Else MsgBox ("Nenalezeno") End If

Na kterém řádku se naléza hledaná hodnota

Jelli potřeba zjistit na kterém řádku se hodnota naléza.

With Sheets("List2").Range("A:A") Set Rng = .Find(What:="2", _ After:=.Cells(.Cells.Count), _ LookIn:=xlValues, _ LookAt:=xlWhole, _ SearchOrder:=xlByRows, _ SearchDirection:=xlNext, _ MatchCase:=False) If Not Rng Is Nothing Then MsgBox ("Radek: " & Rng.Row) Else MsgBox "Nenalezeno" Exit Sub End If End With

Adresa buňky ve které je hledaná hodnota

vyjdeme z předchozího kódu jen upravíme:

MsgBox ("Adresa: " & Rng.Address) ' podobně pro sloupec MsgBox ("Sloupec: " & Rng.Column)
Microsoft Excel VBA - stahuj logo

Ke stažení

Soubor Find - Hledej - praktické příklady - Excel VBA soubor ve formátu *.xlsm ke stažení zdarma. Soubor využívá makra (pro Excel 2007 a novější).


Další související články:

Pokud už máte buňku (oblast) označenou můžete s ními dále pracovat například

Závěrem

Máte svůj oblíbený kód pro hledání, nebo používate nějakou fintu, které ještě není uvedena. Můžete se pochlubit v komentářích.

Článek byl aktualizován: 02.06.2016 18:43

Odměna

Ušetřil vám tento web čas, peníze? Pomohl vyřešit problém? Jste ochotni poskytnout symbolickou odměnu na další rozvoj? Vybrte si formu odměny, která vám vyhovuje.


Pavel Lasák - autor webu

Pavel Lasák

Microsoft Office (Word, Excel, PowerPoint) se věnuji od roku 2000 (od 2004 ne této doméně) - Roku 2017 jsem od Microsoft získal prestižní ocenění MVP (zatím jsem jediný z ČR v kategorií Excel). Své vědomosti a zkušenosti dávám k dispozici také na on-line videích pro SEDUO. Školím a konzultuji, učím na MUNI. Hlavně tvořím tento web. Je zde k dispozici přes 1.000 návodu, tipů a triků včetně stovek různých šablon, sešitů.

   Pavel Lasák LinkedIn Profil    Pavel Lasák Google+ Profil    Pavel Lasák facebook Profil    Pavel Lasák twitter Profil


Komentáře


Iva

Přidáno: 24.12.15 10:02

Dobrý den, mohl by jste mi prosím poradit, jak napsat kód, když mám buňku A1 do které zapíši např. 1+1 nebo 6/6 a v msgboxu potřebuji zobrazit výsledek? Jak mám nadefinovat, že před znaménkem je číslo a za znaménkem je také číslo a podle znaménka, aby se určilo, co bude provádět za činnost? Moc Vám děkuji

Pavel Lasák

Přidáno: 02.06.16 18:32

To Iva: Událost listu Worksheet_Change, a následně přečíst hodnotu pomocí textových funkcí rozložit, zkontrolovat zda je správné matematické znaménko a následně provést výpočet a ten zobrazit v dialogovém okně. Popřemýšlet zda není vhodnější způsob jak údaje do buněk zadávat.

Franta

Přidáno: 27.06.16 20:14

Dobrý den, mohl byste mi, prosím, poradit s jednou věcí? V buňkách A1 až D10 mám data. Do sloupce G bych potřebovat vypsat pouze ta, která začínají řetězcem "HL". Ušetřilo by mi to hodně času a práce. Děkuji moc :-)

Jojo

Přidáno: 29.06.16 11:15

To Franta:For col = 1 To 4 'stĺpce A až D For rw = 1 To 10 ' riadky If Left(Cells(rw, col), 2) = "HL" Then ' rozlišuje veľké/malé písmená rwOut = rwOut + 1 Cells(rwOut, "G") = Cells(rw, col) End If Next rw Next col







Sdílejte

Pomohl Vám návod?
Sdílejte na Facebooku, G+
LinkedIn...

Nové články


Newsletter

Přihlaste se odběru novinek a získejte:
Ebook zdarma -
10 kroků ke zvládnutí (Word, Excel, PowerPoint)
Šipka Kniha 3D Více o ebooku ...

TOPlist Licence Creative Commons webarchiv rss XML

Stránky o MS Office (Excel) produktu společnosti Microsoft. Neslouží jako technická podpora.
| Email na autora: pavel.lasak@gmail.com | Copyright © : Pavel Lasák 2004 - 2017 | 9466

Tento web zatím neprošel jazykovou korekturou. Beta verze redakčního systému.