Vba'da bir hücre değişken olarak nasıl kullanılır?
Bir aralığı veya tek bir hücreyi değişken olarak kullanmak için öncelikle bu değişkeni aralık veri türüyle bildirmeniz gerekir. Bunu yaptıktan sonra range nesnesini kullanarak bir hücreden bu değişkene kadar bir aralık belirtmeniz gerekir. Bu aynı zamanda bir aralıkta kullanabileceğiniz tüm özelliklere ve yöntemlere erişmenizi sağlar.
- “Dim” anahtar kelimesini kullanın ve değişken adını girin.
- Anahtar kelimeyi Range olarak bildirin.
- Değişken adını yazın.
- Değişkene atamak istediğiniz aralığı belirtin.
Seçimi aralık değişkenine ayarla
Ayrıca seçilen aralığı bir değişken için kullanabilir ve daha sonra bu değişkeni özelliklere ve yöntemlere erişmek için kullanabilirsiniz. Aşağıdaki kodu göz önünde bulundurun.
Sub vba_range_variable() Dim rng As Range Set rng = Selection Selection.Clear End Sub
Ancak dikkat etmeniz gereken bir şey var ki range dışında bir nesne seçtiğinizde VBA size hata gösterecektir.
Ancak bu aynı zamanda aralığı tekrar tekrar değiştirmenize gerek olmayan dinamik bir yöntemdir.
Değişken kullanarak aralığı kopyalama
Bir değişkeni aralık olarak bildirdiğinizde , o değişken adını kullanarak o aralığı da kopyalayabilirsiniz. A1:A10 aralığını rng değişkeni olarak bildirdiğinizi varsayalım (yukarıdaki örnek), aşağıdaki kodu kullanarak bunu kopyalayabilirsiniz.
Sub vba_range_variable() Dim rng As Range Set rng = Range("A1:A10") rng.Copy End Sub
Aralık değişkenini bir işlevde kullanma
Makro yazarken bir işlevdeki bir aralığa başvurmak için bir aralık değişkeni de kullanabilirsiniz. Aşağıdaki kodu göz önünde bulundurun.
Sub vba_range_variable() Dim iNames As Variant Dim rng As Range Set rng = Range("A1:A10") Range("B1") = WorksheetFunction.Max(rng) End Sub
A1:A10 aralığında değerler alır ve “rng” değişkenini kullanmanız gerektiğinden, çıktısını almak için maksimum değerdeki değişkeni kullandık.
İlgili: VBA’da WorksheetFunction Nasıl Kullanılır
Satır ve sütun sayısını sayın
Daha önce de söylediğim gibi, bir değişkeni aralık olarak belirledikten sonra tüm özellikleri ve erişim yöntemlerini de elde edeceksiniz. Satırları ve sütunları saymak isteyip istemediğinizi hayal edin. İşte kullanılabilecek kod.
Sub vba_range_variable() Dim rng As Range Set rng = Range("A1:A10") MsgBox "This range has " & _ rng.Rows.Count & " row(s) and " & _ rng.Columns.Count & " coulmn(s)." End Sub
Bu kodu çalıştırdığınızda değişkende belirttiğiniz aralıktaki satır ve sütun sayısını içeren bir mesaj görüntüler .
Aralıklı çalışma sayfasının tanımı
Yukarıdaki örneklerin tamamında aralığı çalışma sayfasından bahsetmeden kullandık, dolayısıyla bu kodu çalıştırdığınızda VBA her zaman etkin sayfadaki aralığa başvuracaktır. Ancak belirli bir çalışma sayfasına başvurmak istiyorsanız çalışma sayfası nesnesini aralıkla birlikte kullanmanız gerekir.
Dim rng As Range Set rng = Worksheets("Sheet1").Range("A1:A10")