EXCEL VBA XLUP

 


Excel VBA XLUP nedir?

Excel çalışma sayfalarında çalışırken, işi hızlı bir şekilde halletmek için birçok kısayol tuşu kullanırız. Bunlardan biri, alttan sütunun en üst hücresine gitmektir. Bunun için kullanılan kısayol tuşu  Ctrl + Yukarı  Ok'tur.

VBA'da benzer bir görev için, RANGE nesnesi içinde XLUP yönünü kullanmalıyız. Bu nedenle, VBA XLUP geçerli hücreden yukarı yönde ilk boş olmayan hücreye ulaşmamıza yardımcı olur. Bunun Excel çalışma sayfasında nasıl çalıştığına dair basit bir örnek gösterelim. Excel'deki aşağıdaki verilere bakın.

VBA XLUP - Giriş

A1 ile B12 aralığında verilerimiz var ve şu anda A15 hücresindeyiz. Klavyede Ctrl + Yukarı Ok kısayol tuşunu kullanalım.

VBA XLUP - Giriş-Çıkış

Kısayol tuşuna bastığımızda, etkin hücre C15 hücresinden C12'ye, yani ilk boş olmayan hücreye taşınır. XLUP yöntemi aşağıda görüldüğü gibi benzer bir işlevi gerçekleştirir.

Sub VBA_XLUP()
Range(“A14”).End(xlUp).Select
End Sub

Bu, A14 hücresinden yukarı doğru ilk boş olmayan hücreyi seçecektir. Önemli olan, bu kodda VBA XLUP'ı kullanmış olmamızdır.

Kodlamada VBA XLUP Nasıl Kullanılır?

Kodlamada VBA XLUP'ı kullanmanın adım adım yaklaşımını gösterelim. Aşağıda listelenen adımları izleyin. Örneğin, Excel çalışma sayfasındaki şu verilere bakın.

VBA XLUP - Kullanım - Örnek

A1'den B10'a kadar bir veri aralığımız var. Buradaki kritik nokta VBA XLUP komutunun işlevselliğini anlamaktır. 

Bunu anlamak için öncelikle VBA XLUP'un Range.End özelliğiyle olan sözdizimine bakmamız gerekiyor.

Aralık Sonu Özelliğinin Sözdizimi

Range.End özelliği, üzerinde çalıştığımız veri aralığındaki belirli bir hücreye manevra yapmamızı sağlar. Sözdizimi aşağıdaki gibidir:

Range(From Cell).End(Direction)

Range nesnesinin içinde, manevraya başlayacağımız hücre adresini sağlamamız gerekir. Örneğin, manevraya A10 hücresinden başlamamız gerekir.

Sonra, END özelliği manevranın yönünü kontrol etmek için RANGE nesnesinin bir parçası olarak kullanılır. RANGE nesnesinin END özelliğinin içinde, aşağıdaki dört yön komutunu kullanabiliriz.

xlDown – RANGE nesnesinin başlangıç ​​hücresinden son boş olmayan hücreye aşağı doğru hareket etmek için. Bu, Ctrl + Aşağı Ok tuşunu kullanmakla aynıdır .

xlUp– RANGE nesnesinin başlangıç ​​hücresinden son boş olmayan hücreye kadar yukarı doğru hareket etmek için. Bu, klavye kısayolu Excel'de Ctrl + Yukarı Ok tuşunu kullanmakla aynıdır .

xlToLeft –  RANGE nesnesinin başlangıç ​​hücresinden son boş olmayan hücrenin sol tarafına geçmek için.  Klavye kısayolunda Ctrl + Sol Ok tuşunu kullanmakla aynıdır  .

xlToRight –  RANGE nesnesinin başlangıç ​​hücresinden son boş olmayan hücrenin sağ tarafına geçmek için. Klavye kısayolunda Ctrl + Sağ Ok tuşunu kullanmakla aynıdır   . Aşağıda RANGE END özelliğinin bir parçası olarak kullanılabilen seçeneklerin görüntüsü bulunmaktadır.

VBA XLUP - Kullanım - Örnek - aralık sonu
VBA XLUP - Kullanım - Örnek - Tablo

A15'ten son boş olmayan hücreye gitmemiz gerektiğini varsayalım. Aşağıda listelenen adımları izleyin.

Adım 1: Makroyu Excel'de adlandırarak alt rutin prosedürünü başlatın .

VBA XLUP - Kullanım - Örnek - Adım 1

Adım 2: İlk olarak, VBA XLUP özelliğini nereden başlatmamız gerektiğine karar vermeliyiz. Bu durumda, A15 hücresinden başlamalıyız. Bu nedenle, RANGE nesnesini kullanın ve hücre adresini A15 olarak sağlayın.

VBA XLUP - Kullanım - Örnek - Adım 2

Adım 3: Verilen hücreden yukarıya doğru hareket etmemiz gerektiğinden, yön için “End” özelliğini seçmeliyiz. Bu nedenle, bir nokta girin ve END özelliğini kullanın.

VBA XLUP - Kullanım - Örnek - Adım 3

Adım 4: END özelliği için bir parantez açın. IntelliSense listesinde yön seçeneklerini göreceğiz.

VBA XLUP - Kullanım - Örnek - Adım 4

Adım 5: Yukarı doğru hareket etmemiz gerektiğinden VBA XLUP seçeneğini seçip parantezi kapatıyoruz.

VBA XLUP - Kullanım - Örnek - Adım 5

Adım 6: Yukarı doğru hareket ettiğimizde, boş olmayan son hücreyi seçmeliyiz. Bu nedenle, bir nokta girin ve Select yöntemini seçin.

VBA XLUP - Kullanım - Örnek - Adım 6

Şimdi imlecimizi öncelikle A15 hücresinin üzerine getirelim.

VBA XLUP - Kullanım - Örnek - A15

Şimdi kodu çalıştırın. İlk boş olmayan hücreyi, yani A10 hücresini seçmelidir.

VBA XLUP - Kullanım - Örnek - Çalıştır

Görüldüğü gibi A15 hücresinden yukarı doğru ilk boş olmayan hücre A10 hücresidir ve VBA XLUP özelliği ile aynı hücre seçilmiştir. 

Bu şekilde VBA XLUP'ı kullanarak boş olmayan hücreyi seçebiliriz.

Örnek 1 – Hücreleri Silinen Hücrelerin Konumuna Taşı

Verilerle çalıştığımızda boş hücrelerle uğraşırız ve verilerle sorunsuz çalışmak için bu boş hücrelerden kurtulmamız gerekir. Örneğin, Excel çalışma sayfasındaki aşağıdaki verilere bakın.

VBA XLUP - Kullanım - Örnek 1

İlk veri setinde, A1'den B12'ye kadar olan aralıkta aylık satışlarımız var. Ancak, satır #5 ve satır #9'da bazı boş satırlarımız var.

En basit yol boş satırı seçip silmektir. Ancak buradaki sorun sağ tarafta başka bir veri setimiz olmasıdır. Bu boş satırları silmeye çalışırsak bu satırların verileri sağ taraftaki tablodan da silinecektir. Sonunda ikinci tablodan da bazı verileri silmek zorunda kalacağız.

Bunu yapmanın bir yolu özel hücreleri kullanmaktır. Aynı mantığı VBA XLUP kullanarak VBA kodlamasında nasıl uygulayabileceğimizi göstermeden önce, yalnızca ilk tablodan boş hücreleri silmek için aşağıda listelenen adımları izleyelim .

Adım 1: A1'den B12'ye kadar olan tüm veri aralığını seçin.

VBA XLUP - Kullanım - Örnek 1 - Adım 1

Adım 2: “Git” penceresini açacak olan F5 tuşuna basın. Bu pencerede “Özel” seçeneğine tıklayın.

VBA XLUP - Kullanım - Örnek 1 - Adım 2

Adım 3: “Özel’e Git” penceresinde “ Boş ” seçeneğini seçin.

VBA XLUP - Kullanım - Örnek 1 - Adım 3

Adım 4: “Tamam”a tıklayın. Seçili bölgedeki tüm boş hücreler, yani A1'den B12'ye kadar olan hücreler seçilecektir.

VBA XLUP - Kullanım - Örnek 1 - Adım 4

Adım 5: Boş hücreleri seçili tutarken Delete tuşuna “Ctrl ve Eksi (-)” işaretine basarak aşağıdaki “Sil” penceresini getirin.

VBA XLUP - Kullanım - Örnek 1 - Adım 5

Buradan VBA'daki VBA XLUP'ın kopyası olan "Hücreleri Yukarı Kaydır" seçeneğini seçin.

VBA XLUP - Kullanım - Örnek 1 - Adım 5 - Hücreyi yukarı kaydır

“Tamam”a tıklayın. Tüm seçili satırlar seçilmeli ve altlarındaki hücreler yukarı kaydırılmalıdır.

VBA XLUP - Kullanım - Örnek 1 - Adım 5 - Tamam

Benzer bir eylem kümesi VBA'da VBA XLUP metodu kullanılarak gerçekleştirilebilir. Aşağıdaki kod aynısının bir örneğidir. Bunu ayrıntılı olarak açıklayalım.

Sub VBA_XLUP_Ex1()
Range(“A1:B12”).SpecialCells(xlCellTypeBlanks).Delete Shift:=xlUp
End Sub

Range(A1:B12) – Verilerimiz A1 ila B12 hücre aralığına yayıldığı için, RANGE nesnesini kullanarak veri aralığı referansını sağladık.

SpecialCells (xlCellTypeBlanks) – Verilen aralık referansında, yalnızca boş hücrelerle çalışmalıyız. Bu nedenle, VBA Special Cells yöntemini kullanıyoruz. Bu özel hücreden, xlCellTypeBlanks'ı kullanarak yalnızca boş hücreleri seçtik.

Delete Shift:xlUp – Boş hücreyi silmemiz gerektiğinden, VBA Delete metodunu kullandık. Ayrıca, tüm hücreleri yukarı kaydırmalıyız. Bu nedenle, Delete metodunun Shift argümanını kullandık ve verileri alt hücrelerden üst hücrelere itmek için VBA XLUP'ı kullandık.

Örnek 2 – VBA XLUP kullanarak Son Kullanılan Satırı Bulma

Aynı görevi birden fazla satır için gerçekleştirmemiz gerektiğinde, döngüleri kullanmamız gerekir ve döngünün kaç kez çalışması gerektiğini bulmak, veri aralığının son satırına bağlıdır.

Son kullanılan satırı dinamik olarak bulmak için VBA XLUP'ı kullanmamız gerekir. Bunu şimdi pratik bir örnekte yapalım. Bu örnek için kullanacağımız veriler aşağıdadır.

Örnek 2

Son kullanılan satırı bulmak için aşağıdaki adımları takip edelim.

Adım 1: Makroya isim vererek alt prosedürü başlatın.

Örnek 2 - Adım 1

Adım 2: Bildiğimiz gibi, Ctrl + Yukarı Ok kısayol tuşuna bastığımızda  ,  bizi ilk boş olmayan hücreye götürecektir. Burada da aynı yöntemi kullanmamız gerekiyor.

Hangi hücreden yukarı çıkmamız gerekiyor? Verilere bağlı. Ancak, yukarı çıkmanın en iyi yolu Excel çalışma sayfasının son hücresindendir.

Excel çalışma sayfamızda 1 milyondan fazla satır var.

Örnek 2 - Adım 2

Bu hücreden başlayalım.

Örnek 2 - Adım 2 - kod

Adım 3: Sonra, bu hücreden VBA XLUP kullanarak yukarı çıkmamız gerekiyor. Bunun için VBA XLUP end'i kullanmalı, bir nokta girmeli ve END özelliğini kullanmalıyız.

Örnek 2 - Adım 3

Adım 4: END özelliği içerisinde, son hücreden ilk boş olmayan hücreye gitmek için VBA XLUP'ı kullanmamız gerekiyor.

Örnek 2 - Adım 4

Adım 5: İşlem burada bitmiyor; şimdi, buradan ilk boş olmayan hücreye gittikten sonra ne yapmamız gerektiğini seçmemiz gerekiyor. Diyelim ki o hücreyi seçmemiz gerekiyor; dolayısıyla SELECT metodunu kullanalım .

Örnek 2 - Adım 5

Tamamdır, bu kadar.

Kodu çalıştıralım. Son hücreden, yani A10 hücresinden, ilk boş olmayan hücreyi seçmelidir.

Örnek 2 - Adım 5 - Seç

Görüldüğü gibi ilk boş olmayan hücre olan A10 hücresi seçilmiştir.

Son kullanılan satır numarasını bir değişkene almak için bu kodla oynayabiliriz. Örneğin, aşağıdaki koda bakın.

Örnek 2 - Kod parçası

Bölüm #1: Son kullanılan satır numarasını depolamak için değişkeni tanımladık. Atayacağımız değer bir sayı olduğundan, LONG VBA veri türünü kullandık.

Bölüm #2: Tanımlı değişken için, son kullanılan satır numarasını atıyoruz. Bu nedenle, SELECT yöntemini kullanmak yerine, satır numarasını döndürecek olan ROW özelliğini kullanıyoruz.

Bölüm #3: Son olarak, atanan değişken değerini bir mesaj kutusunda gösteriyoruz.

Kodu çalıştıralım ve aşağıdaki gibi bir mesaj kutusunda son kullanılan satır numarasını alalım.

Örnek 2 - Adım 5 - Son kullanılan satır

Yani son kullanılan satır numarası on'dur ve aynı değer bir mesaj kutusuna döndürülmüştür.

Bu kodun güzelliği dinamik olmasıdır. Veri arttıkça, sütun A'nın veri boyutuna göre en son satır numarasını otomatik olarak alır. Örneğin, şimdi aşağıdaki verilere bakın.

Örnek 2 - Adım 5 - Veriler

11. satırda bir boşluk var ve 12. satıra yeni veri ekledik.

Şimdi kodu çalıştıralım ve aşağıdaki gibi son kullanılan satırı döndürmelidir.

VBA XLUP - Kullanım - Örnek 2 - Çıktı

Veriler 12. satıra kadar yayıldığı için kod tarafından aynı değer döndürülmüştür.




Yorum Gönder

DT KARİYER KPSS Dünyasına Hoş Geldiniz
Sevgili dostum nasıl yardımcı olabilirim?
Bu alana yazınız...