VBA Kullanarak Son Boş Olmayan Satırı ve Sütunu Bulmanın En İyi 3 Yolu

İçindekiler

Son kullanılan satırı ve sütunu bulmak, VBA kullanan herhangi bir excel otomasyonu için temel ve önemli görevlerden biridir. Sayfaları, çalışma kitaplarını derlemek ve verileri otomatik olarak düzenlemek için, sayfalardaki verilerin sınırını bulmanız gerekir.

Bu makale, excel'de son satırı ve sütunu bulmanın her yöntemini en kolay şekilde açıklayacaktır.
1. Range.End kullanarak bir Sütundaki Boş Olmayan Son Satırı Bulun
Önce kodu görelim. mektubunu açıklayacağım.

Sub getLastUsedRow() Last_row As Integer last_row = Cells(Rows.Count, 1).End(xlUp).Row 'Bu satır son satırı alır Debug.Print last_row End Sub

Yukarıdaki alt, sütun 1'deki son satırı bulur.

Nasıl çalışır?
Tıpkı sayfadaki son satıra gidip CTRL+UP kısayoluna basmak gibidir.
Hücreler(Satırlar.Sayı, 1): Bu kısım A sütunundaki hücreyi seçer. Rows.Count, genellikle excel sayfasındaki son satır olan 1048576'yı verir.

Hücreler(1048576, 1)

.Bitiş(xlUp): End, sayfalarda uçlara gitmek için kullanılan bir aralık sınıfı yöntemidir. xlUp yönü söyleyen değişkendir. Bu komut birlikte veri içeren son satırı seçer.

Cells(Rows.Count, 1).End(xlUp)

.Sıra : satır, seçili hücrenin satır numarasını döndürür. Bu nedenle, A sütunundaki verilerle son hücrenin satır numarasını alıyoruz. örnekte 8'dir.

Veri içeren son satırları bulmanın ne kadar kolay olduğunu görün. Bu yöntem, önündeki boş hücrelerden bağımsız olarak verilerdeki son satırı seçecektir. Görüntüde yalnızca A8 hücresinde veri olduğunu görebilirsiniz. A4 dışında önceki tüm hücreler boştur.

Bir sütunda veri içeren son hücreyi seçin
A sütunundaki son hücreyi seçmek istiyorsanız, sondan “.row”u kaldırın ve .select yazın.

Sub getLastUsedRow() Cells(Rows.Count, 1).End(xlUp).Select ‘Bu satır bir sütundaki son hücreyi seçer End Sub

“.Select” komutu aktif hücreyi seçer.
Son hücrenin adres sütununu al
A sütunundaki son hücrenin adresini almak istiyorsanız, sondan “.row”u kaldırın ve .address yazın.

Sub getLastUsedRow() add=Cells(Rows.Count, 1).End(xlUp).address 'Bu satır bir sütundaki son hücreyi seçer Debug.print add End Sub

Menzil.Adres işlev, aktif hücrenin adresini döndürür.
Bir Satırdaki Son Boş Olmayan Sütunu Bul
Bir sütunda boş olmayan son hücreyi bulmakla hemen hemen aynıdır. Burada 4. satırdaki verilerle son hücrenin sütun numarasını alıyoruz.

Sub getLastUsedCol() Dim last_col As Integer last_col = Cells(4,Columns.Count).End(xlToLeft).Column 'Bu satır son sütunu alır Debug.Print last_col End Sub


Resimde 4. satırdaki boş olmayan son hücrenin sütun numarasını döndürdüğünü görebilirsiniz. Bu da 4.
Nasıl çalışır?

Mekanik, bir sütundaki verilerle son hücreyi bulmakla aynıdır. Sadece sütunlarla ilgili anahtar kelimeler kullandık.
VBA Kullanarak Excel'de Veri Kümesini Seçin
Artık, VBA kullanarak excel'in son satırını ve son sütununu nasıl alacağımızı biliyoruz. Bunu kullanarak kolayca bir tablo veya veri seti seçebiliriz. Veri setini veya tabloyu seçtikten sonra bunlar üzerinde kopyala-yapıştır, biçimlendirme, silme gibi birçok işlem yapabiliriz.
Burada veri setimiz var. Bu veriler aşağı doğru genişleyebilir. Yalnızca B4 olan başlangıç ​​hücresi sabittir. Son satır ve sütun sabit değil. Tüm tabloyu vba kullanarak dinamik olarak seçmemiz gerekiyor.

Boş hücreli tabloyu seçmek için VBA kodu

Sub select_table() Dim last_row, last_col As Long 'Son satırı al last_row = Cells(Rows.Count, 2).End(xlUp).Row 'Son sütunu al last_col = Cells(4, Columns.Count).End(xlToLeft) .Column 'Tablonun tamamını seçin Range(Cells(4, 2), Cells(last_row, last_col))).Select End Sub

Bunu çalıştırdığınızda, tüm tablo bir saniyenin kesri içinde seçilecektir. Yeni satırlar ve sütunlar ekleyebilirsiniz. Her zaman tüm verileri seçecektir.

Bu yöntemin faydaları:

  1. Bu kolay. Verileri içeren son satırı almak için kelimenin tam anlamıyla sadece bir satır yazdık. Bu kolaylaştırır.
  2. Hızlı. Daha az kod satırı, daha az zaman harcanır.
  3. Anlaması kolay.
  4. Sabit başlangıç ​​noktalı beceriksiz veri tablonuz varsa mükemmel çalışır.

Range.End yönteminin eksileri:

  1. Başlangıç ​​noktası bilinmelidir.
  2. Bilinen bir satır veya sütunda yalnızca boş olmayan son hücreyi alabilirsiniz. Başlangıç ​​noktanız sabit olmadığında, faydasız olacaktır. Ki bu çok daha az olasıdır.

2. Find() İşlevini Kullanarak Son Satırı Bulun
Önce kodu görelim.

 Sub last_row() lastRow = ActiveSheet.Cells.Find("*", searchorder:=xlByRows, searchdirection:=xlPrevious).Row Debug.Print lastRow End Sub 


Resimde de görebileceğiniz gibi, bu kod son satırı doğru bir şekilde döndürüyor.
Nasıl çalışır?
Burada, joker operatör "*" kullanarak herhangi bir şey içeren herhangi bir hücreyi bulmak için find işlevini kullanıyoruz. Yıldız işareti herhangi bir şey, metin veya sayı bulmak için kullanılır.

Arama sırasını satırlara göre belirliyoruz (searchorder:=xlByRows). Ayrıca excel vba'ya aramanın yönünü xlPrevious (searchdirection:=xlPrevious) olarak söyleriz. Sayfanın sonundan satır bazında arama yapmak için bul işlevini yapar. Herhangi bir şey içeren bir hücre bulduğunda durur. Aktif hücreden son satırı almak için Range.Row yöntemini kullanıyoruz.

Veri içeren son hücreyi almak için Bul işlevinin faydaları:

  1. Başlangıç ​​noktasını bilmenize gerek yok. Sadece son sırayı alır.
  2. Genel olabilir ve herhangi bir değişiklik yapmadan herhangi bir sayfada veri içeren son hücreyi bulmak için kullanılabilir.
  3. Sayfadaki belirli bir metin veya sayının son örneğini bulmak için kullanılabilir.

Bul() işlevinin eksileri:

  1. Bu çirkin. Çok fazla tartışma.
  2. Bu yavaş.
  3. Son boş olmayan sütunu almak için kullanılamaz. Teknik olarak, yapabilirsiniz. Ama çok yavaş oluyor.

3. Son Satırı Almak İçin SpecialCells İşlevini Kullanma
xlCellTypeLastCell bağımsız değişkenine sahip SpecialCells işlevi, son kullanılan hücreyi döndürür. Önce kodu görelim

Alt spl_last_row_() lastRow = ActiveSheet.Cells.ÖzelHücreler(xlCellTypeSonHücre).Row Debug.Print lastRow End Sub


Yukarıdaki kodu çalıştırırsanız, son kullanılan hücrenin satır numarasını alacaksınız.

Nasıl çalışır?

Bu, excel'deki CTRL+End kısayolunun vba eşdeğeridir. Son kullanılan hücreyi seçer. CTRL+End tuşlarına basarken makroyu kaydederseniz, bu kodu alacaksınız.

Sub Macro1() ' ' Macro1 Macro ' ' ActiveCell.SpecialCells(xlLastCell).Select End Sub 

Sadece son kullanılan hücrenin satır numarasını almak için kullandık.

Not: Yukarıda söylediğim gibi, bu yöntem veri içeren son hücreyi değil, son kullanılan hücreyi döndürecektir. Son hücredeki verileri silerseniz, yukarıdaki vba kodu, “son kullanılan hücre” olduğu için yine aynı hücre referansını döndürür. Bu yöntemi kullanarak verileri içeren son hücreyi almak için önce belgeyi kaydetmeniz gerekir.

Microsoft Excel'de VBA kullanarak onay istemleri olmadan sayfaları silin

Microsoft Excel 2016'da VBA Kullanarak Yeni Çalışma Kitabı Ekleme ve Kaydetme

Excel VBA Durum Çubuğunda Bir Mesaj Görüntüle

Microsoft Excel 2016'da VBA Kullanarak Uyarı Mesajlarını Kapatın

Popüler Makaleler:

Excel'de DÜŞEYARA İşlevi

Excel 2016'da EĞERSAY

Excel'de SUMIF İşlevi Nasıl Kullanılır

Arkadaşlarınızla sayfasını paylaşan sitenin gelişimine yardımcı olacak

wave wave wave wave wave