VBA Son satır, Excel'deki son satırı bulmamıza yardımcı olur. Aynı görevi Excel'de gerçekleştirmemiz gerektiğinde, bunu bir döngü içinde gerçekleştirmek yaygın bir uygulamadır (For Next, For Each). Bu döngülerin kaç kez çalıştırılması gerektiğine karar vermek için bir başlangıç ve bir bitiş numarasına ihtiyaçları vardır. Bunun için, çalışma sayfasının son kullanılan hücresini veya satırını dinamik olarak bulmalıyız.
Bu yazımızda son kullanılan satırı bulmak için kullanılan tüm ileri düzey hesaplamaları ve kodlamaları öğreneceğiz.
ÖNEMLİ NOKTALAR
- VBA Son satır, çalışma sayfasındaki son satırı bulmak için kullanılır. Son satırı bulmak, çalışma sayfasının altından itibaren ilk boş olmayan hücre anlamına gelir.
- VBA'da son satırı bulmak için Rows.Count yöntemini kullanmalıyız. Bu yöntem çalışma sayfasının altından itibaren ilk boş olmayan hücreyi arayacaktır.
- Ayrıca Rows.Count metodunu kullanarak istediğimiz bir sütunu seçip o sütunun VBA'daki son satırını bulabiliriz.
Sütunda Son Kullanılan Satır Nasıl Bulunur?
Sütunun son kullanılan satırını bulmanın birçok yolu var ve şimdi bu yollardan bazılarını detaylı olarak göstereceğiz.
1 – Son Satırı Bulmak İçin Özel Hücreleri Kullanma
Excel çalışma sayfasındaki son kullanılan satırı bulmayı daha iyi anlamanız için, önce aynı yöntemi çalışma sayfasında göstereceğiz. Ardından, VBA kodunu yazmaya geçeceğiz .
Örneğin Excel'deki aşağıdaki verilere bakalım.

Adım 1: Yukarıdaki veri tablosunda son kullanılan hücre E7'dir, bu hücreye gitmek için Ctrl + End kısayol tuşlarını kullanmamız gerekir .
A1 hücresini seçin.

Adım 2: Çalışma sayfasının son kullanılan hücresine gitmek için Ctrl + End kısayol tuşlarına basın .

Bu bizi son kullanılan hücreye, yani E7 hücresine götürür.
Adım 3: Benzer şekilde, VBA'da, verilen çalışma sayfasının son kullanılan hücresini bulmak için özel hücreler yöntemini kullanabiliriz.
Aşağıdaki kod çalışma sayfasının son kullanılan hücre adresini döndürecektir.
Sub Son_Kullanılan_Satır()
Dim LC As String
‘LC = Last Cell
LC = Range(“A1”).SpecialCells(xlCellTypeLastCell).Address
MsgBox LC
End Sub
Yukarıdaki kod, mesaj kutusunda son kullanılan hücre adresini döndürecektir.

Görüldüğü gibi çalışma sayfasının en son kullanılan hücresi E7 hücresidir.
Adım 4: Özel hücre türünde 'Adres' özelliğini kullandık. Son kullanılan hücre satır numarasını almak için ROW özelliğini kullanmamız gerekiyor.
Sub Last_Used_Row()
Dim LC As String
‘LC = Last Cell
LC = Range(“A1”).SpecialCells(xlCellTypeLastCell).Row
MsgBox LC
End Sub
Bu, son kullanılan hücre satır numarasını döndürecektir.

Ancak bu yöntemin dezavantajları da var. Bunlardan bazılarını pratik örneklerle gösterelim.
Adım 5: Son kullanılan hücre, tam olarak son boş olmayan hücre anlamına gelmez. Örneğin, E7 hücresindeki değeri silelim.

Biz sadece E7 hücresindeki değeri sildik ve bunun dışında başka bir şey yapmadık.
Adım 6: Şimdi kodu çalıştıralım ve son kullanılan satır numarasının ne olduğunu görelim.

Son kullanılan satır numarası hala 7 numaralı satırdır.
Son kullanılan boş olmayan hücre değerini almak için, E7 hücresini silmemiz (tüm biçimlendirme silinecek) ve son kullanılan satır numarasını doğru şekilde almak için çalışma kitabını kaydetmemiz gerekir.

Şimdi, E7 hücresindeki değeri sildik ve çalışma kitabını kaydettik. Sonra, kodu çalıştırdığımızda, son kullanılan satırı 5 olarak alacağız.
2 – Boş Olmayan Hücreler İçin Rows.Count Kullanımı
Belirli bir sütunun son boş olmayan hücresine ulaşmak için Rows.Count metodunu kullanabiliriz. Önceki örnekteki aynı verileri kullanacağız.

Rows.Count seçeneğini kullanarak son kullanılan hücre satır numarasını bulacağız. Son kullanılan satırı bulmak için bir kod yazmadan önce, çalışma sayfasında yaptığımız aktiviteyi size gösterelim.
Adım 1: İlk olarak, çalışma sayfasının son hücresine gitmemiz gerekiyor. Çalışma sayfasının son hücresine gitmek için, etkin hücre A1 hücresiyken Excel kısayol tuşları Ctrl + Aşağı Ok'a basacağız.

Adım 2: Ctrl + Aşağı Ok tuşlarını kullandığımızda, bizi son boş olmayan hücreye, yani A5'e götürür. Bu hücreden, tekrar Ctrl + Aşağı Ok kısayol tuşlarına bastığımızda, bizi A sütununun son hücresine götürecektir.

Adım 3: Şimdi A sütununun son hücresindeyiz. Bu hücreden son kullanılan hücreye gitmek için Ctrl + Yukarı Ok kısayol tuşlarına basın .

Bizi A sütununun son kullanılan hücresine götürür.
Benzer bir yaklaşımı VBA ile de uygulayacağız.
Adım 4: İlk olarak satır numarasını tutacak bir VBA değişkeni tanımlayın ve sayısal veri türünü Long olarak atayın .

Adım 5: Bu değişkene son satırı atayacağız.

Adım 6: Hücreler özelliğine girin ve parantezi açın.

Adım 7: Şimdi son hücreye gitmemiz gerekiyor. Son hücreye gitmek için Rows.Count seçeneğini kullanın.

Rows.Count kaç satır olduğunu sayacaktır. Sonra, VBA'da son satırı bulmaya çalıştığımız sütunun sütun numarasını sağlamamız gerekir, yani sütun 1.

Adım 8: Şu anda A sütununun son hücresindeyiz. Bu hücreden Ctrl + Yukarı Ok kısayol tuşlarına basmamız gerekiyor . VBA'da END özelliğini kullanabilir ve ardından yukarı doğru hareket etmek için xlUp tuşunu seçebiliriz.

Adım 9: Bu bizi A sütununun son kullanılan hücresine götürecektir. Son kullanılan hücrenin satır numarasını almak için ROW özelliğini kullanmamız gerekir.

Adım 10: Şimdi, mesaj kutusunda değişken LR değerini gösterin.

Sub Rows_Count_Last_Row ()
Dim LR As String
‘LR = Last Row
LR = Cells(Rows.Count, 1).End(xlUp).Row
MsgBox LR
End Sub
Bu, son kullanılan satır numarasını döndürecektir.

Adım 11: Nasıl çalıştığını kontrol etmek için, iki boş satır bırakarak bir değer ekleyelim.

Bu kod son kullanılan satırı 9 olarak döndürecektir.

Son kullanılan hücre satırını bulmak için CELLS özelliği yerine Range nesnesini de kullanabiliriz. Aşağıdaki kod referansınız içindir.
Sub Rows_Count_Last_Row()
Dim LR As String
‘LR = Last Row
LR = Range(“A” & Rows.Count).End(xlUp).Row
MsgBox LR
End Sub
RANGE nesnesiyle sütun numarası olarak A sütununu veriyoruz ve yalnızca bu sütunda son kullanılan hücre satırını bulacak.
3 – Herhangi Bir Seçili Sütun İçin Rows.Count Kullanımı
Önceki örnek, A sütununun son kullanılan hücre satır numarasını döndürdü. Ancak, her zaman sadece A sütununun son kullanılan hücre satır numarasına ihtiyacımız olması gerekmez. Bu nedenle, seçilen herhangi bir sütunun son kullanılan hücre satır numarasını bulma esnekliğine sahip olmalıyız.
Aşağıdaki kod, seçilen sütunun son kullanılan hücre satır numarasını döndürecektir.
Sub Satırlar_Sayısı_Seçilen_Sütun()
Dim LR As Long
'LR = Last Row
Dim C As Long
' C = Column
C = Selection.Column
LR = Cells(Rows.Count, C).End(xlUp).Row
MsgBox LREnd Sub
Adım 1: Kodu çalıştırmadan önce, son kullanılan satırı bulmamız gereken sütunu seçmemiz gerekiyor. C sütununu seçelim.

Adım 2: Şimdi kodu çalıştırın.

Seçilen C sütununda son kullanılan satır numarası 6'dır.
Aynı şekilde hücrelerden herhangi birini seçip kodu test edebiliriz.
4 – Son Satırı Bulmak İçin UsedRange Kullanımı
Ayrıca aktif sayfanın son kullanılan satırını da bulabiliriz. Aşağıdaki kod, kullanılan aralık özelliğini kullanarak son kullanılan satırı döndürecektir.
Sub Satırlar_Sayısı_KullanılanAralık()
Dim LR As Long
'LR = Last Row
Dim Ws As Worksheet
Set Ws = ActiveSheet
LR = Ws.UsedRange.Rows(Ws.UsedRange.Rows.Count).Row
MsgBox LREnd Sub
Bu, geçerli çalışma sayfasının kullanılan aralığının son kullanılan hücre satırını döndürür.
5 – Son Satırı Bulmak İçin Range.Find Kullanımı
VBA'daki Find yöntemi çeşitli görevler için kullanılır ve bunu son kullanılan hücre satırını bulmak için de kullanabiliriz. Range.Find yönteminin sözdizimi aşağıdaki gibidir:

Daha iyi anlaşılması için sözdizimini basitleştirelim.
Şimdi aşağıdaki koda bakalım.
Sub Satırlar_Sayısı_Aralığı_Bul()
Dim LR As Long
'LR = Last Row
LR = Cells.Find(What:="*", _
After:=Range("A1"), _
SearchDirection:=xlPrevious, _
SearchOrder:=xlByRows).Row
MsgBox LREnd Sub
Kod Açıklaması:
Yukarıdaki, A1 hücresinden başlayarak tüm çalışma sayfasındaki ilk boş olmayan hücreyi arar ancak arama çalışma sayfasının en altından başlar.
What:= “*” – Find yönteminin What sözdiziminde, hücredeki herhangi bir metni veya sayıyı bulan joker karakter yıldız işaretini (*) kullanıyoruz. Basitçe söylemek gerekirse, boş olmayan ilk hücreyi arar.
After:= Range(“A1”) – Arama, çalışma sayfasındaki ilk hücre olan A1 hücresinden başlamalıdır. Aramanın A1 hücresinden sonra gerçekleşmesini sağladığımızdan, bulma işlemi A1 hücresini dikkate almayacaktır. Bul, yalnızca SearchOrder ve SearchDirection'a bağlı olarak A1 hücresinden sonra çalışacaktır.
SearchDirection: = xlPrevious – Bu argüman önemlidir, çünkü bu argümanda girdiyi xlPrevious olarak sağladık , yani bulma işlemi sağdan sola ve aşağıdan yukarıya doğru başlamalıdır.
SearchOrder: = xlByRows – Bu, bulma işleminin satır satır gerçekleşmesini sağlar.
Şimdi işlevselliğini daha iyi anlamak için size birkaç örnek gösterelim.
Aşağıdaki verilere bakın.

Bu kodu çalıştırdığımızda son kullanılan satırın 7 olduğunu göreceğiz.

Şimdi A10 hücresine bir değer ekleyelim.

Şimdi kodu çalıştırın ve son kullanılan satır olarak 10 numaralı satırı döndürmelidir.

Şimdi D12 hücresine bir değer ekleyelim.

Şimdi kodu çalıştırın ve ne olacağını görün.

Şimdi son kullanılan hücre satırını 12 olarak döndürüyor.
Range.Find metodunun en iyi kısmı budur. Değeri olan son kullanılan hücreyi bulur.
Menzil.Bul yöntemi önceki yöntemlere göre daha çok yönlüdür.
Rows.Count metodunda, satır numarasını bulmaya çalıştığımız sütun numarasını belirtmemiz gerekir. Ancak Find metoduyla, sütun numarasını belirtmemize gerek kalmaz.
Değeri otomatik doldurmak için , otomatik doldurma işlevini sınırlamak için kullanılan son değeri bulmamız gerekir. Örneğin, aşağıdaki verilere bakın.
A sütununa, A2 hücresinden başlayarak seri numaraları girmemiz gerekiyor ve seri numarası 1 artırılmalı
. A2 ve A3 hücrelerine sırasıyla 1 ve 2 değerlerini girdik. Aşağıdaki kod, son kullanılan satıra kadar 1 artırılan sayıları otomatik olarak dolduracaktır.
Bu, son kullanılan hücre satırına kadar sayıları otomatik olarak dolduracaktır.
Örneğin Excel'deki aşağıdaki verilere bakalım.
Son kullanılan hücreyi seçmek için aşağıdaki kodu kullanabiliriz.
Bu, çalışma sayfasının son kullanılan hücresini seçecektir.
Hatalardan kaçınmak için, her zaman en son kullanılan hücrenin satır numarasını almak için sonuna bir satır özelliği sağlayın.
