EXCEL VBA'DA END FONKSİYONU

 

VBA End ifadesi, bir makronun veya prosedürün yürütülmesini erken sonlandırmak için kullanılır. Karşılaşıldığı noktada kod yürütülmesini etkili bir şekilde durdurur. Genellikle hata ayıklama için veya belirli koşullara bağlı olarak bir prosedürden çıkmak istediğinizde kullanılır.


Bir örneğe bakalım. A sütununda veriler bulunan bir Excel elektronik tablonuz olduğunu ve A sütunundaki boş olmayan son hücreyi seçmek istediğinizi düşünün.

VBA Sonu - Tanım Örneği - 1

Bunu başarmak için bir VBA uç özelliğinden yararlanabilirsiniz. A sütununda veri bulunan son hücrenin satır numarasını hatırlamak için 'lastRow' adlı özel bir kutu oluşturarak başlıyoruz.

  • A sütununun en altından başlıyoruz ('Hücreler(Satırlar.Sayı, “A”)') ve sonra yukarıya doğru hareket ediyoruz ('.End(xlUp)').
  • Veri içeren ilk hücreyi bulduğumuzda, 'lastRow' kutucuğuna satır numarasını yazarız.
  • Hedef hücremizin satır numarasını tutan 'lastRow' ile Excel'e A sütunundaki belirli hücreyi seçmesini söylemek için 'Cells(lastRow, “A”).Select' komutunu kullanırız.
VBA Sonu - Tanım Örneği - 2

Bu VBA makrosunu çalıştırdığınızda A sütununda boş olmayan son hücrenin otomatik olarak seçildiğini göreceksiniz.

VBA Sonu - Tanım Örneği - 3

ÖNEMLİ NOKTALAR

  1. VBA End ifadesi kod yürütülmesini erken sonlandırmak için kullanılır.
  2. Koşullu ifadeler genellikle kod akışını kontrol etmek ve prosedürlerden veya döngülerden çıkmak için tercih edilir.
  3. VBA End Property, sınıf modülleri içerisinde bir özellik bildiriminin sonunu belirtmek için kullanılır.
  4. VBA Ay Sonu genellikle belirli bir tarih için bir ayın sonunu hesaplayan bir VBA işlevi veya koduna atıfta bulunur. Genellikle finansal veya tarihle ilgili hesaplamalarda bir ayın son gününü bulmak için kullanılır.

VBA'da Son Özellik

“VBA End Property”, bir sınıf modülü içinde kullanılan bir ifadedir. Sınıf özellikleri bağlamında, “VBA End Property”, bir sınıf modülü içindeki bir özellik bildiriminin sonunu belirtmek için kullanılır. Özelliğe erişildiğinde özelliğin değerinin doğru şekilde depolanmasını ve alınmasını sağlar.


VBA'da End Fonksiyonu Nasıl Kullanılır?

  1. Excel çalışma kitabında, Visual Basic for Applications (VBA) düzenleyicisini açmak için ALT + F11 tuşlarına basın.


    VBA'da End Function nasıl kullanılır - Adım 1

  2. VBA düzenleyicisinin içinde, VBA kodunuzu yazabileceğiniz yeni bir modül eklemek için Ekle → Modül'e gidin.


    VBA'da End Function nasıl kullanılır - Adım 2

  3. Function anahtar sözcüğünü kullanarak VBA modülünüz içerisinde yeni bir fonksiyon tanımlayın.

  4. Fonksiyonunuzun hesaplamalar veya veri depolama için kullanacağı gerekli değişkenleri tanımlayın.

  5. Fonksiyonunuzun verilen girdilere göre yürütmesi gereken mantığı ve hesaplamaları uygulayın.

  6. Fonksiyonun sonuç olarak döndürmesi gereken değeri belirtmek için VBA End Function ifadesini kullanın.

  7. Excel çalışma sayfanızda veya başka bir VBA prosedüründe, fonksiyonu ismini kullanarak ve gerekli argümanları geçirerek çağırın.

  8. VBA End Fonksiyonu tarafından döndürülen sonucu daha sonra kullanmak veya kullanıcıya sunmak için yakalayın veya görüntüleyin.

Örnekler

Örnek 1 – Çalışma Sayfasında Hareket Etmek İçin VBA Son Özelliğini Kullanma

  • Adım 1: Yeni modülde 'MoveCells' adında yeni bir alt rutin oluşturun.
Excel'de VBA Sonu - Örnek 1 - Adım 1
  • Adım 2: Burada, 'currentCell' adlı bir değişkeni Aralık olarak bildiriyoruz. 'currentCell'i şu anda seçili hücreyi (ActiveCell) temsil edecek şekilde başlatın.
Örnek 1 - Adım 2
  • Adım 3: Bir dizi talimatı tekrar tekrar yürütmek için bir 'Do' döngüsü başlatın.
Örnek 1 - Adım 3
  • Adım 4: Döngünün içerisinde, kullanıcıdan bir değer girmesini istemek ve girilen değeri 'currentCell' içerisinde saklamak için 'InputBox' fonksiyonunu kullanın.
Örnek 1 - Adım 4
  • Adım 5: 'currentCell' içerisine girilen değerin “end” değerine eşit olup olmadığını kontrol etmek için bir 'If' ifadesi uygulayın.
Örnek 1 - Adım 5
  • Adım 6: Adım 5'teki koşul doğruysa (yani, kullanıcı "son" girdiyse), VBA Son döngüsünden erken çıkmak için 'Çıkış Yap'ı kullanın.
Örnek 1 - Adım 6
  • Adım 7: “end” girilmemişse, 'currentCell' öğesini sütunu değiştirmeden bir satır aşağı taşımak için 'Set currentCell = currentCell.Offset(1, 0)' komutunu kullanın.
Örnek 1 - Adım 7
  • Adım 8: Kullanıcı döngüden çıkmak için “son” yazana kadar 4 ila 7. Adımları tekrarlamaya devam edin.
Örnek 1 - Adım 8
  • Adım 9: Makroyu kaydedin ve Çalıştır'a tıklayın. Çalıştırmaya başladığınızda, herhangi bir sayısal değer girmenizi isteyen kullanıcı giriş kutusunun açılır penceresini göreceksiniz .
VBA Sonu - Örnek 1 - Adım 9
  • Adım 10: Kullanıcı giriş kutusuna herhangi bir sayısal değer girin ve "Tamam"a tıklayın. Sayıları girerken, birden fazla değeri art arda girebilirsiniz. Ancak, durup toplamı hesaplamak istediğinizde, giriş kutusuna "son" yazın ve tekrar "Tamam"a tıklayın.
VBA Sonu - Örnek 1 - Adım 10a
VBA Sonu - Örnek 1 - Adım 10b
Excel'de VBA Sonu - Örnek 1 - Adım 10c
  • Adım 11: Yukarıdaki eylem, "son" girilene kadar tüm girilen sayısal değerleri Excel çalışma sayfasına kaydedecektir. "Son" girildikten sonra giriş kutusu kapanacak ve girilen değerlerin toplamı hesaplanacak ve sonuç olarak gösterilecektir.
Excel'de VBA Sonu - Örnek 1 - Adım 11

İşte tam kod:

Sub MoveCells()
Dim currentCell As Range
Set currentCell = ActiveCell
Do
currentCell.Value = InputBox(“Enter a value (or type ‘end’ to stop):”)
If currentCell.Value = “end” Then
Exit Do ‘ Exit the loop when ‘end’ is entered
End If
Set currentCell = currentCell.Offset(1, 0) ‘ Move to the cell below
Loop
End Sub


Örnek 2 – Son Özelliği Kullanarak Seçim

  • Adım 1: Excel'deki yeni modülde VBA Editörü içerisinde 'SelectRange' adında yeni bir alt rutin oluşturun.
Excel VBA Son Özelliği - Örnek 2 - Adım 1
  • Adım 2: Şimdi, kullanıcının girdisini depolamak için userInput değişkenini bir dize olarak bildirin. Ayrıca, selectedRange değişkenini bir Aralık olarak bildirin. Bu değişken seçilen aralığı depolayacaktır.
Örnek 2 - Adım 2
  • Adım 3: Hataları geçici olarak yok saymak için On Error Resume Next ile hata işlemeyi uyguluyoruz.
Örnek 2 - Adım 3
  • Adım 4: Şimdi InputBox işlevini kullanarak bir aralık adresi girmesi için bir istem kullanıcısı oluşturun ve girdiyi userInput değişkeninde saklayın. Excel'in bir hücre referansı girdisi beklediğinden emin olmak için Type:=2'yi ayarladık .
Örnek 2 - Adım 4
  • Adım 5: Hata denetimini etkinleştirmek için On Error GoTo 0 ile hata işlemeyi sıfırlayın.
Örnek 2 - Adım 5
  • Adım 6: userInput'a girilen değerin "end" değerine eşit olup olmadığını bir If ifadesi kullanarak kontrol edin.
Örnek 2 - Adım 6
  • Adım 7: Adım 6'daki koşul doğruysa (yani, kullanıcı "end" girdiyse), Exit Sub ifadesini kullanarak alt rutinden çıkın.
Örnek 2 - Adım 7
  • Adım 8: Hataları geçici olarak yok saymak için On Error Resume Next ile hata işlemeyi tekrar uygulayın.
Örnek 2 - Adım 8
  • Adım 9: Range(userInput) kullanarak selectedRange değişkenini kullanıcı girişiyle belirtilen aralığa ayarlamayı deneyin.
Örnek 2 - Adım 9
  • Adım 10: Hata denetimini etkinleştirmek için On Error GoTo 0 ile VBA hata işlemeyi sıfırlayın .
Örnek 2 - Adım 10
  • Adım 11: selectedRange değişkeninin Nothing olup olmadığını kontrol edin. Bu, aralığın mevcut olmadığını veya girdinin geçersiz olduğunu gösterir.
Örnek 2 - Adım 11
  • Adım 12: Eğer selectedRange değeri ' Hiçbir şey ' ise , “Geçersiz aralık adresi veya aralık mevcut değil.” metnini içeren bir mesaj kutusu görüntülenir.
Örnek 2 - Adım 12
  • Adım 13: Eğer selectedRange ' Nothing ' değilse , geçerli bir aralık seçilmiş demektir. Aralığı seçmek için selectedRange.Select'i kullanın.
Örnek 2 - Adım 13
  • Adım 14: Makroyu kaydedin ve Çalıştır'a tıklayın. Çalıştırdığınızda, aralığı girmeniz için bir kullanıcı girişi penceresi görüntülenecektir.
Excel'de VBA Sonu - Örnek 2 - Adım 14
  • Adım 15: Geçerli bir aralık girilirse, Excel çalışma sayfasında bunu seçer. Giriş geçersizse veya aralık yoksa, "Geçersiz aralık adresi veya aralık mevcut değil" ifadesini belirten bir mesaj kutusu görüntüler.
Excel VBA Son Özelliği - Örnek 2 - Adım 15a
Excel VBA Son Özelliği - Örnek 2 - Adım 15b

İşte tam kod:

Sub SelectRange()
Dim userInput As String
Dim selectedRange As Range ‘ Declare a variable to store the selected range
On Error Resume Next ‘ Ignore errors
userInput = Application.InputBox(“Enter a range address (e.g., A1:B5):”, Type:=2)
On Error GoTo 0 ‘ Reset error handling
If userInput = “end” Then
Exit Sub ‘ Exit if ‘end’ is entered
End If
On Error Resume Next ‘ Ignore errors
Set selectedRange = Range(userInput) ‘ Try to set the selected range
On Error GoTo 0 ‘ Reset error handling
If selectedRange Is Nothing Then
MsgBox “Invalid range address or range does not exist.”
Else
selectedRange.Select ‘ Select the range if it exists
End If
End Sub


Örnek 3 – Sağdan Sola, Sağdan Aşağıya ve Yukarıya Seç

  • Adım 1: Excel'deki yeni modülde VBA Editörü içerisinde 'SelectCells' adında yeni bir alt rutin oluşturun.
Excel VBA Son Özelliği - Örnek 3 - Adım 1
  • Adım 2: Şimdi Direction için bir istem kullanıcısı oluşturun:

Kullanıcıdan bir yön girmesini (örneğin, "sol", "alt" veya "üst") istemek için 'InputBox' işlevini kullanın ve girişi 'yön' değişkeninde saklayın.

Örnek 3 - Adım 2
  • Adım 3: 'Yön' değişkenini değerlendirmek ve girdiye göre uygun kod bloğunu seçmek için 'Durum Seç' ifadesini kullanın.
Örnek 3 - Adım 3
  • Adım 4: ' Select Case ' bloğunun içinde aşağıdakileri kullanın :

"Sol" için 'ActiveCell.End(xlToLeft).Select' kullanın, yani VBA End xlleft soldaki hücreyi seçmek için kullanılır.

“Alt” için, alttaki hücreyi seçmek üzere 'ActiveCell.End(xlDown).Select'i, yani VBA End xldown'ı kullanın.

“Üst” için 'ActiveCell.End(xlUp).Select' kullanın, yani üstteki hücreyi seçmek için VBA End xlup kullanın.

Örnek 3 - Adım 4
  • Adım 5: Kullanıcı geçersiz bir yön girerse, “Geçersiz yön” metninin bulunduğu bir mesaj kutusu görüntüleyin.
Örnek 3 - Adım 5

  • Adım 6: Modülü kaydedin ve çalıştır'a tıklayın. Kodu çalıştırdığınızda, "sol, alt, üst" girmenize olanak tanıyan bir kullanıcı girişi penceresi göreceksiniz.
Excel'de VBA Sonu - Örnek 3 - Adım 6
  • Adım 7: Etkin hücrenizin C5 olduğunu varsayalım; bu senaryoda ortaya çıkan çıktı şu şekildedir:
Excel'de VBA Sonu - Örnek 3 - Adım 7a

"Left" yazarsanız, kod şu anda etkin olan hücrenin solundaki hücreyi seçecektir.

Excel'de VBA Sonu - Örnek 3 - Adım 7b

"bottom" yazarsanız kod, o anda etkin olan hücrenin altındaki hücreyi seçecektir.

Excel'de VBA Sonu - Örnek 3 - Adım 7c

“Top” yazarsanız, kod VBA’da o anda etkin olan hücrenin üstündeki hücreyi seçecektir .

Excel'de VBA Sonu - Excel VBA Son Özelliği - Örnek 3 - Adım 7d

Başka bir girdi (geçersiz yön) girerseniz, kod “Geçersiz yön” metnini içeren bir mesaj kutusu görüntüler.

Excel'de VBA Sonu - Excel VBA Son Özelliği - Örnek 3 - Adım 7e

İşte tam kod:

Sub SelectCells()
Dim direction As String
direction = InputBox(“Yön girin (sol, alt, üst):”)
Select Case direction
Case “sol”
ActiveCell.End(xlToLeft).Select ' Soldaki hücreyi seç
Case “alt”
ActiveCell.End(xlDown).Select ' Alttaki hücreyi seç
Case “üst”
ActiveCell.End(xlUp).Select ' Üstteki hücreyi seç
Case Else
MsgBox “Yön geçersiz.”
End Select
End Sub

Dikkat Edilmesi Gereken Önemli Noktalar

  • VBA End ifadelerinin kullanımı dikkatli olmalıdır, çünkü kodun erken sonlandırılması beklenmeyen davranışlara ve veri kaybına yol açabilir.
  • Çoğu durumda, yalnızca VBA End ifadesine güvenmek yerine, belirli koşullara dayalı prosedürlerden veya döngülerden çıkmak için If, Then, Exit Sub veya If, Then, Exit For gibi koşullu ifadeleri kullanmak daha iyidir.
  • VBA End ifadesi hata ayıklama ve geliştirme amaçları için kullanılmalıdır ve genel olarak üretim kodu için uygun değildir.

1. Excel VBA'da 'End If' ne işe yarar?

'End If' ifadesi VBA'da bir 'If' bloğunu kapatmak için kullanılır. Koşullu kodun sonunu belirtir ve kodunuzun bir sonraki bölümüne devam etmenizi sağlar.

2. VBA End fonksiyonu neden çalışmıyor?

VBA End ifadesi amaçlandığı gibi çalışmalıdır. Çalışmıyorsa, herhangi bir sözdizimi hatası olup olmadığını kontrol edin ve uygun bağlamda yürütüldüğünden emin olun.

3. VBA'da 'If' ifadesi nasıl sonlandırılır?

VBA'da bir 'If' ifadesini, koşullu bloğu kapatmak için 'VBA End If' komutunu kullanarak sonlandırabilirsiniz.

4. VBA’da “Beklenen Son Alt” ne anlama geliyor?

"Beklenen Son Alt" genellikle kodunuzda bir sözdizimi hatası olduğunu gösterir ve bir alt rutini kapatmak için bir 'VBA Son Alt' ifadesinin eksik olduğunu gösterir. Kod yapınız eksik veya yanlış biçimlendirilmiş olduğunda yaygın bir hata mesajıdı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...