Priložen makro (najden na internetu in prirejen) iz določenega območja na "Listu4" zajema podatke o naslovih (imenih) stolpcev, ki jih išče v naslovni vrstici "Lista2". Ko najde enak naslov stolpca, celoten stolpec kopira na "List3". Zadeva deluje, vendar kopira le prvi najden stolpec, čeprav jih je na "Listu2" več z enakim imenom. Želel bi, da pregleda celotno naslovno vrstico (dokler so v njej podatki), prekopira vse stolpce z enakim imenom (ki bi jih nato obdelal z dodatno vstavljenim makrojem) in gre šele nato iskati in kopirati stolpce z naslednjim imenom. Tu pa se zatakne.
Makro sem poskušal prirediti z While – Wend funkcijo, pa z Do – Loop While, vendar mi nikakor ne uspe doseči želenega. Čeprav sem prepričan, da bi z eno od teh funkcij moral doseči želeno, te ne znam na pravilen način postaviti na pravo mesto. Ali se motim? Ne vem, kje je zanka.
Hvaležen bi bil za nasvet.
Lep pozdrav,
Drago
Koda: Izberi vse
Sub CopyColsMOJ()
Dim h As Range, f As Range, sht1, rngDest As Range
Set sht1 = ThisWorkbook.Sheets("List2")
Set rngDest = ThisWorkbook.Sheets("List3").Range("C1") 'start pasting here
'loop through the headers to copy
For Each h In ThisWorkbook.Sheets("List4").Range("F1:Q1").Cells
'find the header on List2 OD TU NAPREJ SE MORA PONAVLJATI DO KONCA VRSTICE NA LISTU2
Set f = sht1.Rows(1).Find(h.Value, , xlValues, xlWhole)
If Not f Is Nothing Then
'found the header: copy the column
f.EntireColumn.Copy rngDest
Set rngDest = rngDest.Offset(0, 1) ' move destination
End If
Set f = Nothing
'TU PRIDE MAKRO ZA OBDELAVO PODATKOV
Next h
End Sub