Lucrul cu intervale (Range)

Într-o foaie de lucru, va trebui adesea să manipulați intervale de celule. Puteți lucra cu intervale absolute (intervale pentru care specificați adresele absolute ale celulelor pe care doriți să le afectați, cum ar fi C12) sau intervale relative în raport cu celula activă, unde folosiți Offset.

Aveți posibilitatea fie să specificați o zonă utilizând proprietatea Range, fie să creați o zonă denumită utilizând colecția Names. Excel furnizează, de asemenea, proprietatea UsedRange pentru lucrul cu intervalul utilizat într-o foaie de lucru și metoda SpecialCells a obiectului Range pentru lucrul cu celule care îndeplinesc anumite criterii.

Lucrul cu o zonă de celule

Pentru a lucra cu o zonă de celule, utilizați proprietatea Range a obiectului Worksheet corespunzător pentru a specifica celulele. De exemplu, următoarea comandă setează la 44 valoarea celulei C12 din foaia de lucru activă:

ActiveSheet.Range("C12").Value = "44"

Crearea unei zone denumite

Pentru a crea o zonă denumită, utilizați metoda Add cu colecția Names. Sintaxa este următoarea:

expression.Add(Name, RefersTo, Visible, MacroType, ShortcutKey, Category, NameLocal, RefersToLocal, CategoryLocal, RefersToR1C1, RefersToR1C1Local)

Componentele sintaxei sunt:

  • expression este o expresie necesară care returnează un obiect Names.
  • Name este un argument opțional de tip Variant care specifică numele pe care trebuie să-l atribuiți intervalului denumit. Name este necesar dacă nu specificați argumentul NameLocal (descris mai jos în această listă). Numele nu poate fi o referință de celulă și nici nu poate conține spații.
  • RefersTo este un argument opțional de tip Variant care specifică intervalul pentru zona denumită. Trebuie să specificați RefersTo cu excepția cazului în care utilizați argumentul RefersToLocal, argumentul RefersToR1C1 sau argumentul RefersToR1C1Local.
  • Visible este un argument opțional de tip Variant pe care îl puteți omite, setați la True pentru ca Excel să facă numele vizibil în interfața cu utilizatorul (în cadrul casetelor de dialog Go To și Paste Name și în alte locații) sau setați la False pentru a face numele ascuns.
  • MacroType este un argument opțional de tip Variant pe care îl puteți utiliza pentru a asocia un tip de macrocomandă la interval: 1 pentru o procedură Function definită de utilizator, 2 pentru o procedură Sub și 3 sau se omite pentru nicio macrocomandă.
  • ShortcutKey este un argument opțional de tip Variant care specifică tasta de comenzi rapide pentru o macrocomandă atribuită intervalului denumit.
  • Category este un argument opțional de tip Variant care specifică categoria macrocomenzii sau funcției specificate de MacroType. Puteți specifica una dintre categoriile utilizate de Function Wizard, sau specificați un alt nume pentru ca Excel să creeze o categorie nouă cu acel nume.
  • NameLocal este un argument opțional de tip Variant care specifică numele intervalului în limba locală. Utilizați NameLocal atunci când omiteți Name.
  • RefersToLocal este un argument opțional de tip Variant care specifică intervalul pentru zona denumită. Folosiți RefersToLocal atunci când omiteți RefersTo, RefersToR1C1 și RefersToR1C1Local.
  • CategoryLocal este un argument opțional de tip Variant pe care le utilizați pentru a specifica categoria macrocomenzii sau funcției specificate de MacroType. Folosiți CategoryLocal atunci când omiteți Category.
  • RefersToR1C1 este un argument opțional de tip Variant care specifică intervalul pentru zona denumită folosind notația R1C1 (R1C1 înseamnă rândul 1 coloana 1). Folosiți RefersToR1C1 atunci când omiteți RefersTo, RefersToLocal și RefersToR1C1Local.
  • RefersToR1C1Local este un argument opțional de tip Variant care specifică intervalul pentru zona denumită utilizând notația R1C1 în limba locală. Folosiți RefersToR1C1Local atunci când omiteți RefersTo, RefersToLocal și RefersToR1C1.

De exemplu, următoarea instrucțiune definește un interval numit myRange, care se referă la intervalul A1:G22 din foaia de lucru denumită Materials din registrul de lucru denumit Building Schedule.xlsx:

Workbooks("Building Schedule.xlsx").Names.Add Name:= "myRange", _ 
   RefersTo:="=Materials!$A$1:$G$22"

Ștergerea unui interval denumit

Pentru a șterge o zonă denumită, utilizați metoda Delete cu obiectul Names corespunzător. De exemplu, următoarea instrucțiune șterge intervalul numit myRange în registrul de lucru numit Building Schedule.xlsx:

Workbooks("Building Schedule.xlsx").Names("myRange").Delete

Lucrul cu un interval denumit

Pentru a lucra cu o zonă denumită, specificați numele cu obiectul Range. De exemplu, următoarea comandă setează înălțimea rândurilor din intervalul numit myRange la 20 de puncte și aplică celulelor fontul Arial de 16 puncte:

With Range("myRange")
  .RowHeight = 20 .Font.Name = "Arial"
  .Font.Size = "16"
End With

Lucrul cu intervalul utilizat

Dacă trebuie să lucrați cu toate celulele dintr-o foaie de lucru, dar nu și cu zonele neocupate ale foii de lucru, utilizați proprietatea UsedRange. De exemplu, următoarea instrucțiune potrivește automat lățimea tuturor coloanelor din intervalul utilizat în foaia de lucru activă:

ActiveSheet.UsedRange.Columns.AutoFit

Lucrul cu SpecialCells

Dacă trebuie să lucrați numai cu unele tipuri de celule dintr-o foaie de lucru sau dintr-un interval, utilizați metoda SpecialCells a obiectului Range pentru a returna celulele de care aveți nevoie. Sintaxa este următoarea:

expression.SpecialCells(Type, Value)

Acestea sunt componentele sintaxei:

  • expression este o expresie necesară care returnează un obiect Range.
  • Type este un argument obligatoriu care specifică ce celule doriți. Tabelul următor afișează constantele pe care le puteți utiliza.
  • Value este un argument opțional de tip Variant pe care îl puteți utiliza atunci când Type este xlCellType Constants sau xlCellTypeFormulas pentru a control care celule vor fi incluse de Excel. Tabelul de mai jos afișează constantele și ce valori vor returna.

De exemplu, următoarea instrucțiune activează ultima celulă din foaia de lucru la care face referire variabila obiect myWorksheet:

myWorksheet.Cell.SpecialCells(Type:=xlCellTypeLastCell).Activate

Următoarea instrucțiune identifică toate celulele care conțin formule care duc la erori în foaia de lucru activă:

ActiveSheet.Cells.SpecialCells(Type:=xlCellTypeFormulas, _ 
  Value:=xlErrors).Activate

Introducerea unei Formule într-o celulă

Pentru a introduce o formulă într-o celulă, setați proprietatea Formulă a obiectului Celulă corespunzător. De exemplu, următoarea instrucțiune introduce formula =SUM($G$12:$G$22) în celula activă:

ActiveCell.Formula = "=SUM($G$12:$G$22)