Caracteristicile Find and Replace (Găsire și înlocuire) din Excel pot fi utile pentru localizarea datelor în procedurile dvs. În Excel, Find and Replace sunt implementate prin metode, nu ca în Word, care folosește obiectul Find.
Atât obiectul Range, cât și obiectul WorksheetFunction au metode de găsire și de înlocuire (dar cu sintaxa diferită). Pentru majoritatea operațiunilor de găsire și înlocuire, veți dori să utilizați obiectul Range - de exemplu, pentru a înlocui conținutul anumitor celule dintr-o foaie de lucru.
Sintaxa pentru metoda Find a obiectului Range este următoarea:
expression.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)
Iată componentele sintaxei:
CĂUTARE PRACTICĂ: FERIȚI-VĂ DE SETĂRILE PERSISTENTE
Argumentele LookIn, LookAt, SearchOrder și MatchByte ale metodei Find a obiectului Range persistă - Excel le păstrează de la o căutare la alta. Dacă nu sunteți sigur că setările utilizate în căutarea anterioară sunt potrivite pentru nevoile curente, trebuie să setați aceste argumente în mod explicit pentru fiecare căutare nouă pentru a evita obținerea de rezultate neașteptate.
Acordați o atenție deosebită setării LookAt. Această setare corespunde casetei de selectare Match Entire Cell Contents din caseta de dialog Find and Replace. Pentru a vedea această opțiune manual într-o fereastră Excel, faceți clic pe orice celulă, apoi faceți clic pe butonul Find and Replace din eticheta Home a panglicii. Alegeți Replace din meniul vertical, apoi faceți clic pe butonul Options din caseta de dialog Find and Replace, dacă este necesar, pentru a afișa toate opțiunile disponibile în caseta de dialog respectivă.
Rețineți că setările de format, cum ar fi fontul și scrierea la indice (subscript), persistă, de asemenea. Deci, ați putea dori să le specificați, de asemenea, dacă acestea au fi fost anterior folosite de dvs. sau de utilizator.
Și, în cele din urmă, amintiți-vă că este întotdeauna politicos pentru utilizatori să restabiliți setările lor. Unii utilizatori știu că setările din Find and Replace persistă, astfel încât se așteaptă ca acestea să rămână așa le-au lăsat, indiferent de ce ați putea face cu ele în timp ce se execută procedura. Deci, la începutul procedurii, stocați setările curente ale utilizatorului în variabile. Apoi, la sfârșitul procedurii, salvați aceste setări înapoi la opțiunile anterioare.
Excel nu are nicio comandă globală echivalentă cu instrucțiunea ClearFormatting din Word, descrisă în "Lucrul cu obiecte utilizate pe scară largă în Word".
Următorul exemplu de cod caută 2008 în formulele din celulele de după celula activă, fără a căuta și formatarea:
Cells.Find(What:="2008", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
True, SearchFormat:=False).Activate
Observați că în acest cod este folosit fiecare argument, cu excepția argumentului MatchByte. Rețineți că, dacă omiteți un argument dintr-o listă de argumente, trebuie fie să inserați o virgulă în acel loc, fie să utilizați argumente denumite. Având în vedere că argumentele de găsire Excel sunt persistente, este o idee bună ca să utilizați numele argumentelor, pentru a vă reaminti că acestea trebuie restaurate la setările anterioare ale utilizatorului.
După ce ați executat o căutare utilizând metoda Find, utilizați metoda FindNext pentru a găsi următoarea instanță a elementului de căutare sau metoda FindPrevious pentru a găsi instanța anterioară. Sintaxa este următoarea:
expression.FindNext(After)
expression.FindPrevious(After)
Aici, expression este o expresie necesară care returnează un obiect Range, iar After este un argument opțional de tip Variant care specifică celula după care doriți să căutați (pentru metoda FindNext) sau înaintea căreia doriți să căutați (pentru metoda FindPrevious). After trebuie să fie o singură celulă.
De exemplu, următoarea instrucțiune găsește următoarea instanță a elementului de căutare:
Cells.FindNext
Pentru a înlocui folosind VBA, folosiți metoda Replace cu obiectul Range. Sintaxa este următoarea:
expression.Replace(What, Replacement, LookAt, SearchOrder, MatchCase, MatchByte, SearchFormat, ReplaceFormat)
Componentele sintaxei sunt aceleași ca pentru metoda de căutare, cu excepția următoarelor:
De exemplu, următoarea instrucțiune înlocuiește instanțele cuvântului Sales din coloana B a foii de lucru active cu cuvintele Sales & Marketing, folosind de potrivire sensibilă la litere mari și mici:
ActiveSheet.Columns("B").Replace What:="Sales", _
Replacement:="Sales & Marketing", SearchOrder:=xlByColumns, _
MatchCase:=True
Pentru a căuta formatarea, utilizați proprietatea FindFormat a obiectului Application pentru a defini formatarea, apoi setați argumentul SearchFormat a metodei Find la True. În mod similar, utilizați proprietatea ReplaceFormat a obiectului Application pentru a defini formatarea de înlocuire și apoi setați proprietatea ReplaceFormat a metodei Replace la True.
De exemplu, următoarele afirmații utilizează o structură With pentru a seta proprietățile Application.FindFormat.Font pe care le căutați, o structură With pentru a seta Application.ReplaceFormat.Font cu care să le înlocuiți și metoda Replace a colecției Cells pentru a efectua înlocuirea:
With Application.FindFormat.Font
.Name = "Arial"
.Size = "12"
.Bold = True
End With
With Application.ReplaceFormat.Font
.Name = "Arial Black"
.Bold = False
End With
Cells.Replace What:="5", Replacement:="5", LookAt:=xlPart, SearchOrder _
:=xlByColumns, MatchCase:=False, SearchFormat:=True, ReplaceFormat:=True