Dizi aracılığıyla verilen sütun isimlerinden hareketle ilgili sütundaki verileri alır ve K sütununa (yazdırılacak sütun değiştirilebilir) yazdırılır.
Option Explicit
Sub VerilenSutunlardakiVerileriAltAltaSirala()
Dim dizi As Variant
Dim deger As Variant
Dim sayac As Long
Dim sutunNo As Integer
Dim i As Long
sayac = 1
dizi = Array("B", "C", "E")
For Each deger In dizi
sutunNo = Cells(1, deger).Column
Range("A1").Offset(0, sutunNo - 1).Select
For i = 1 To Range("A1048576").Offset(0, sutunNo).End(xlUp).Row
Range("K" & sayac) = Range("A" & i).Offset(0, sutunNo)
sayac = sayac + 1
Next
Next
End Sub
Option Explicit
Sub VerilenSutunlardakiVerileriAltAltaSirala()
'--------------------------------------------------
'Değişkenler
'--------------------------------------------------
Dim dizi As Variant
Dim deger As Variant
Dim sayac As Long
Dim sutunNo As Integer
Dim i As Long
'--------------------------------------------------
'Yazdırma işlemini yapacağımız sütuna
'verileri sırasıyla ekleyebilmek için
'bu değişkenden yararlan.
'--------------------------------------------------
sayac = 1
'--------------------------------------------------
'Listeleme işlemine dahil olmasını
'istediğimiz sütunları dizi olarak tanımla.
'--------------------------------------------------
dizi = Array("B", "C", "E")
'--------------------------------------------------
'Dizideki her sütun için döngü çalıştır.
'--------------------------------------------------
For Each deger In dizi
'--------------------------------------------------
'Sütunun sayı karşılığını öğren.
'--------------------------------------------------
sutunNo = Cells(1, deger).Column
'--------------------------------------------------
'Offset metodunu kullanarak ilgili sütunu
'seç. Referansı soldan yapıyoruz. Ben sütun
'numarasını biliyorum. Eğer A sütunundan
'referansla başlayıp buradan sağa doğru
'kaydırma yaparak ilerlersem her seferinde
'dizideki ilgili sütunu seçebilirim.
'--------------------------------------------------
Range("A1").Offset(0, sutunNo - 1).Select
'--------------------------------------------------
'Sütundaki verileri döngü ile K sütununda listelet.
'--------------------------------------------------
For i = 1 To Range("A1048576").Offset(0, sutunNo).End(xlUp).Row
Range("K" & sayac) = Range("A" & i).Offset(0, sutunNo)
sayac = sayac + 1
Next
Next
End Sub