Bu eğitim, VBA'da Activecell Offset'in nasıl kullanılacağını gösterecektir.
ActiveCell, çalışma sayfanızdaki etkin hücrenin hücre adresini temsil eden bir VBA özelliğidir. Fare işaretçiniz A1 hücresine yerleştirilmişse, VBA'daki ActiveCell özelliği “A1” hücre adresini döndürür. ActiveCell'e bağlı bir dizi özellik ve yöntemdir. Bu yazıda ActiveCell.Offset yöntemine odaklanıyoruz.
ActiveCell.Offset Özellikleri ve Yöntemleri
Activecell.Offset, VBA ile programlanabilecek bir dizi özellik ve yönteme sahiptir. Kullanılabilir özellikleri ve yöntemleri görüntülemek için aşağıdaki ifadeyi aşağıda gösterildiği gibi bir prosedürde yazın ve açılır listeyi görmek için klavyedeki nokta tuşuna basın.
Yöntemler, yeşil yöntem simgesiyle ve özellikler küçük el simgesiyle gösterilir. Activecell.Offset yönteminin özellikleri ve yöntemleri, Activecell yöntemiyle aynıdır.
ActiveCell.Offset Sözdizimi
Activecell.Offset'in sözdizimi aşağıdaki gibidir.
Burada RowOffset ve ColumnOffset, kaydırılacak satır sayısıdır (pozitif sayılar aşağı, yukarı için negatif sayı) veya kaydırılmasını istediğiniz sütun sayısıdır (pozitif sayılar sağa, negatif sayı sola kaydırılır).
ActiveCell.Offset… Seç
NS Activecell.Offset… Seç yöntemi Activecell.Offset yöntemi için en sık kullanılan yöntemdir. Çalışma sayfanızda başka bir hücreye geçmenizi sağlar. Bu yöntemi, çalışma sayfanızda sütunlar arasında veya yukarı veya aşağı satırlar arasında hareket etmek için kullanabilirsiniz.
Bir satır aşağı gitmek, ancak aynı sütunda kalmak için:
1 | Activecell.Offset(1,0).Seç |
Bir sütun boyunca hareket etmek, ancak aynı satırda kalmak için:
1 | Activecell.Offset (0,1).Seç |
Bir satır aşağı ve bir sütun boyunca ilerlemek için:
1 | Activecell.Offset (1,1).Seç |
Bir satır yukarı taşımak için:
1 | Activecell.Offset(-1,0).Seç |
Bir sütunu sola taşımak için:
1 | Activecell.Offset(0,-1).Seç |
Aşağıdaki prosedürde, bir dizi hücre arasında döngü yapıyoruz ve döngüyü yaparken bir satır aşağı ve bir sütun boyunca ilerliyoruz:
12345678 | Alt ActiveCellTest()Dim x Tamsayı OlarakAralık("A1").Seçinx = 1 ila 10 içinAktif Hücre = xActiveCell.Offset(1, 1).SeçSonraki xAlt Bitiş |
Bunun sonucu aşağıdaki grafikte gösterilmiştir:
Döngü, i (1-10) değerini Aktif hücreve sonra kullanır Activecell.Offset bir satır aşağı ve bir sütun boyunca sağa hareket etme özelliği - bu döngüyü 10 kez tekrarlama.
VBA Programlama | Code Generator sizin için çalışıyor!
Aralık Nesnesini Activecell.Offset Select ile Kullanma
Menzil Nesnesini aktif hücre ile kullanmak bazen bazı kişilerin kafasını karıştırabilir.
Aşağıdaki prosedürü göz önünde bulundurun:
1234 | Alt ActiveCellOffsetRange()Aralık("B1: B10").SeçinActiveCell.Offset(1, 1).Range("A1").SeçAlt Bitiş |
ActiveCell.Offset(1,1.Range(“A1”) ile Range(“A1”) belirtilmiştir.Ancak bu, sayfadaki A1 hücresinin seçileceği anlamına gelmez.Aralığı belirttiğimiz gibi (“B1:B10”), bu aralıktaki A1 hücresi aslında çalışma kitabındaki B1 hücresidir. B1 hücresi A1 hücresinden DEĞİL.
Bu nedenle, bu durumda Range(“A1′) gerekli değildir, çünkü makro onunla veya onsuz aynı şekilde çalışacaktır.
ActiveCell'e alternatifler
Offset metodu ile Activecell kullanmak yerine Offset metodu ile Range nesnesini de kullanabiliriz.
123 | Alt AralıkOffset()Aralık("B1").Ofset(0, 1).SeçAlt Bitiş |
Yukarıdaki prosedür, çalışma sayfasındaki C1 hücresini seçecektir.