Î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.
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"
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:
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"
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
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
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
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:
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
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)