Vba'da bir aralığın transpoze edilmesi (örnekle)
VBA kullanarak bir aralığın yerini değiştirmek için aşağıdaki temel sözdizimini kullanabilirsiniz:
SubTransposeRange ()
'specify range to transpose
MyRange = Range(" A1:B5 ")
'find dimensions of range
XUpper = UBound(MyRange, 1)
XLower = LBound(MyRange, 1)
YUpper = UBound(MyRange, 2)
YLower = LBound(MyRange, 2)
'transpose range
Range(" D1 ").Resize(YUpper - YLower + 1, XUpper - XLower + 1).Value = _
WorksheetFunction.Transpose(MyRange)
End Sub
Bu özel örnek, A1:B5 aralığındaki hücrelerin transpoze edilmesini sağlayacak ve D1 hücresinden başlayan transpoze edilmiş aralığı görüntüleyecektir.
Aşağıdaki örnek, bu sözdiziminin pratikte nasıl kullanılacağını gösterir.
Örnek: VBA’da bir aralığın devri nasıl yapılır?
Diyelim ki Excel’de çeşitli basketbol oyuncuları hakkında bilgiler içeren aşağıdaki veri kümesine sahibiz:
Diyelim ki A1:B5 aralığının transpozesini yapmak ve D1 hücresinden başlayan transpoze edilmiş aralığı görüntülemek istiyoruz.
Bunun için aşağıdaki makroyu oluşturabiliriz:
SubTransposeRange ()
'specify range to transpose
MyRange = Range(" A1:B5 ")
'find dimensions of range
XUpper = UBound(MyRange, 1)
XLower = LBound(MyRange, 1)
YUpper = UBound(MyRange, 2)
YLower = LBound(MyRange, 2)
'transpose range
Range(" D1 ").Resize(YUpper - YLower + 1, XUpper - XLower + 1).Value = _
WorksheetFunction.Transpose(MyRange)
End Sub
Bu makroyu çalıştırdığımızda aşağıdaki çıktıyı alıyoruz:
Aktarılan aralığın D1 hücresinden başlayarak görüntülendiğini unutmayın.
Yani satırlar ve sütunlar ters çevrilmiştir.
Farklı bir aralığı transpoze etmek için makrodaki A1:B5’i farklı bir aralıkla değiştirmeniz yeterlidir.
Not : VBA Transpose yöntemine ilişkin tüm belgeleri burada bulabilirsiniz.
Ek kaynaklar
Aşağıdaki eğitimlerde VBA’da diğer ortak görevlerin nasıl gerçekleştirileceği açıklanmaktadır:
VBA: Belirli bir metin içeren hücreler nasıl sayılır?
VBA: Aralıktaki satır sayısı nasıl sayılır?
VBA: COUNTIF ve COUNTIFS işlevleri nasıl yazılır?