Exceldə VBA ilə ən çox verilən tapşırıqlardan biridə verilən siyahıda sonuncu sətrin nömrəsini tapmaqdır. Bu məlumat vasitəsi ilə siz dinamik PivotTable hesabatları, dinamik qrifklərdə və s. hesabatlar hazırlaya bilərsiniz.
Bu məqalədə sizə VBA vasitəsi ilə sonuncu sətrin nömrəsini tapılmasının 6 üsulunu göstərəcik.
Sonuncu sətr nömrəsini tapmamışdan əvvəl dəyişənlərimizi müəyyən edək
Dim sht as Worksheet
Dim son_str as Long
Set sht = ThisWorkbook.Worksheets(“kodlar”)
I. Ctrl + ↓ (yuxarıdan aşağı) üsulu
Adından da göründüyü kimi bu üsul Ctrl + ↓ qısa yolu ilə eyni funksiyanı yerinə yetirir. Nəzərə alsaq ki bizim siyahıda ilk məlumat A1 xansında yerləşir bu zaman bu üsul üçün VBA kodu aşağıdakı kimidir:
son_str = Range(“A1”).End(xlDown).Row
Bu üsulun geniş istifadə olunmasına baxmayaraq bəzi mənfi tərəfləridə var. Beləki bu üsulu istifadə etdikdə sizin siyahınızda boşluqlar olmamalıdır. Bu üsulun işləmə prinsipinə baxsaq, o ilk xanadan kəsilməz olaraq sonuncu xanaya doğru gedib və onun sətr nömrəsini nəticə olaraq geri qaytarır.
II. Ctrl + ↑ (aşağıdan yuxarı) üsulu
Bu üsulda əvvəl qeyd etdiyimiz üsul ilə eyni məntiqdə işləyir lakin bu səfər yuxarıdan aşağı yoxda aşağıdan yuxarı gedərək nəticəni qaytarır, hansı ki bunu manual olaraq Ctrl + ↑ üsulu ilə edə bilərik. Bu üsulu istifadə edərkən bizim siyahıdan aşağıda yerləşən maksimal sətr nömrəsini bilməliyik. Məsələn bizim siyahı maksimum 100 000 sətrdən çox olmadığını bildiyimizdə bu üsulu VBA vasitəsi ilə aşağıdakı kimi icra edə bilərik:
son_str = Range(“A100000”).End(xlUp).Row
Bu üsulun işləmə prinsipinə baxsaq, 100 000 ci xanadan kəsilməz olaraq yuxarı qalxaraq ilk dolu xananın sətr nömrəsini qaytarır.
III. UsedRange (istifadə olunmuş xanalar) üsulu
Excel VBA da UsedRange dolu olan xanaları tapmaq üçün istifadə olunan xassədir.
Bu xassə Ctrl + End və Ctrl + Home qısa yollarını əvəz edir. Aşağıdakı kod vasitəsi ilə bu üsulu istifadə edə bilərik:
son_str = sht.UsedRange.Rows.Count
Lakin bu üsul zamanıda 1ci üsulda kı kimi siyahımızda boşluq olduğu təqdirdə nəticə səhv ola bilər.
IV. CountA üsulu
Bildiyimiz kimi CountA funksiyası ilə dolu xanaların sayını tapa bilirik. Beləliklə bu funksiyanın vasitəsi ilə A sütununda dolu olan xana sayını taparaq sonuncu sətrin nömrəsini əldə edə bilərik.
son_str = Application.CountA(Range(“A:A”))
V. NamedRange üsulu
Əgər siz siyahınızda adlardan istifadə edirsinizsə bu zaman bu üsuldan istifadə edə bilərsiniz. Məsələn A1:A71 xanalarına “kodlar” adını versək, bu zaman bu adda olan bütün dolu xanaları sayaraq sonuncu sətir nömrəsini tapa bilərsiniz.
son_str = sht.Range(“kodlar”).Rows.Count
Bu üsul digərlərinə nisbətən optimal üsul deyil, beləki A72 xanasına məlumat daxil edilsə belə bu “kodlar” siyahısına avtomatik daxil edilmir bu səbəbdən nəticə dəyişmir.
VI. Cədvəl üsulu
Əgər siyahınızı əvvəlcədən cədvəl formatına çeviribsinizsə (Ctrl + T) bu zaman aşağıdakı kod vasitəsi ilə sonuncu sətrin nömrəsini tapa bilərsiniz:
son_str = sht.ListObjects(“Table1”).Range.Rows.Count
____________________________________________________________________________________________________________________________
Buradaykən, Sizdən kiçik bir xahişimiz var. Bildiyiniz kimi, biz – “INNAB” komandası olaraq ana dilində peşəkar inkişafı təmin etmək məqsədi ilə məzmun (kontent) yaratmaqla da məşğuluq. İşinə məsuliyyətlə və həvəslə yanaşan komandamız bu işi təmənnasız şəkildə yerinə yetirir. Komandamız məzmunlarımızın daha çox insanların izləməsini görüb daha da motivasiya olur. Bu işdə sizin də dəstəyinizə ehtiyacımız var. Bu postu paylaşmaqla, həmçinin hər baxıb bəyəndiyiniz videoları, məqalələri daha çox insana tövsiyyə etməklə, youtube kanalımıza, bloqumuza, facebook/linkedin/instagram səhifəmizə abunə olmaqla həm bizi motivə edə, həm də peşəkar inkişafınız üçün zəmin yarada bilərsiniz.