O mare problema pe care am identificat-o lucrand in VBA este folosirea celulelor sau a zonelor de celule statice. De multe ori mi se intampla sa adaug coloane sau randuri intr-un fisier la putin timp dupa ce am terminat de scris codul VBA.

Inca nu am ajuns la realizarea de a scrie un cod VBA si sa nu mai fie necesara modificarea lui ulterioara. Insa am aflat ca o imbunatatire considerabila adusa codurilor VBA se poate realiza prin identificarea automata a ultimei celule folosite intr-o coloana.

Pentru a afla aceasta informatie, VBA pune la dispozitie mai multe functii insa cea mai simpla este cea in care imitam comportamentului scutaturii: END + una din sageti.

De exemplu, pentru a obtine ultima celula folosita din coloana C, putem folosi codul VBA de mai jos:

last_row

Sub FindingLastRow()

Dim sht As Worksheet
Dim LastRow As Long

‘setam ca sht sa fie sheet-ul in care dorim sa aflam ultima celula dintr-o coloana
Set sht = ThisWorkbook.Worksheets(“Last Row”)

LastRow = sht.Cells(sht.Rows.Count, “C”).End(xlUp).Row

‘afisam intr-un Message Box care este ultimul rand din coloana C
MsgBox “Ultimul rand folosit in coloana C este ” & LastRow

End Sub

In alte cuvinte, codul de mai sus scaneaza coloana setata de noi (C) folosind functia END pana ajunge la prima celula non-blank. Numarul randului unde se gaseste aceasta celula este salvat in variabila LastRow si apoi folosim functia MsgBox pentru a afisa rezultatul.

Urmareste filmuletul de mai jos pentru a vedea in actiune acest cod VBA:

poster
00:00
--
/
--

Comentarii si sugestii

Impartaseste experienta ta sau alte sfaturi utile legate folosirea VBA-ului.

 


Print pagePDF page
Share on Facebook0Share on Google+0Email this to someone