Stránka 1 z 1
VBA - find - proč makro nefunguje?
Napsal: 02 bře 2012 08:47
od Branscombe
Ahoj, neví někdo proč mi makro v přiloženém souboru nevyhledá hodnotu Datum2 ve sloupci hodnot ?
Nějak s těmi vyhledávacími funkcemi poslední dobou bojuji :-/
Re: VBA - find
Napsal: 02 bře 2012 08:56
od Azuzula
Ahoj,
možná to bude tím, že tam není makro? Nebo je to makro v jiném sešitu, ale v tomhle není a ani není jasné kde je v tomto dokumentu Datum2.
Re: VBA - find - proč makro nefunguje?
Napsal: 02 bře 2012 10:04
od Branscombe

No tím to možná bude .. Nevím kam zmizelo, když jsem to snad s ním ukládal nicméně tam bylo toto:
Kód: Vybrat vše
Option Explicit
Sub Vyhledej()
Dim Datum As Range, Datum2 As Range
Set Datum = Worksheets("List1").Range("C1")
With Worksheets("List1").Range("A1:A31")
Set Datum2 = .Find(Mesic, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlPrevious)
End With
Datum2.Select
Set Datum = Nothing
Set Datum2 = Nothing
End Sub
Re: VBA - find - proč makro nefunguje?
Napsal: 02 bře 2012 10:48
od Azuzula
Použila bych následující.
Kód: Vybrat vše
Sub vyhledej()
Dim datum As Date
Dim oblast As Variant
Dim bunka As Variant
datum = Range("C1")
Set oblast = Range("A1:A31")
For Each bunka In oblast
If bunka = datum Then
ActiveSheet.Cells(bunka.Row, 1).Select
Exit For
End If
Next
End Sub
Prohledá zadanou oblast a označí buňku se shodou.
Re: VBA - find - proč makro nefunguje?
Napsal: 02 bře 2012 11:01
od Branscombe
Hm... Díky, ale to mi neřeší můj problém, jelikož tohle je sakra zdlouhavé !

To je uplně jiné řešení, které jsem nepoužil, jelikož mi záleží na rychlosti a nemohu takto ztrácet čas v makru :-/
Neví někdo jak přizpůsobit vyhledávací příkaz Worksheets("").Range("").Find(....) ?
Re: VBA - find - proč makro nefunguje?
Napsal: 02 bře 2012 11:17
od Azuzula
Nevím co je na tomhle zdlouhavé, i 3000 buněk zvládne během mžiku, ale je fakt, že přes milion buněk makru už pár sekund zabere.
Našla jsem tohle a funguje to nejspíš jak potřebujete. Stačí jen hledat.
Kód: Vybrat vše
Sub Find_First()
Dim FindString As Date
Dim Rng As Range
FindString = CLng(Range("C1"))
With Sheets("List1").Range("A:A")
Set Rng = .Find(What:=FindString, _
After:=.Cells(.Cells.Count), _
LookIn:=xlFormulas, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False)
If Not Rng Is Nothing Then
Application.Goto Rng, True
Else
MsgBox "Nothing found"
End If
End With
End Sub
Re: VBA - find - proč makro nefunguje? Vyřešeno
Napsal: 02 bře 2012 12:34
od Branscombe
Tak už jsem zjistil proč toto funguje a to moje ne, bylo to v definování kam se má dívat, konkrétně "LookIn:=xlFormulas" .. Taková blbost, jinak díky za rady