no nedovedu otevrit prilohu, ale jen z hlavy:
Cislo posledniho radku tabulky se zjistuje "skokem odspodu" (musis zvolit vhodny sloupec tabulky, ktery nema ani jednu bunku prazdnou, dejme tome, ze je to sloupec "B"). Samozrejme, ze v danem sloupci pod tabulkou uz nesmis mit zadne neprazdne bunky!
Dim iMaxRad as long, i as Long
'cislo posledniho radku:
iMaxRad = Range("B65000").End(xlUp).Row
pokud bychom ale meli nasazeny filtr v tabulce, tak by nam to nemuselo vratit spravny radek, takze jeste pred tento kod bycho meli umistit nasledujici oddelani filtru:
If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData
A pak jedes postupne pro kazdy radek (dejme tomu, ze tabulka zacina na radku 2, komentare jsou ve sloupci "B" a chceme je narvat do slouce "G"
For i = 2 To iMaxRad
Cells(i,"G") = Cells(i,"B").Comment.Text
Next i
For je systemove slovo, kterym zacina nejaky cyklus. V tomto radku taky definujeme odkud a dokud ma cyklus trvat. Zde si pomahame promennou
i, ktera reprezentuje cislo radku, a ta se ma menit od 2 az po cislo posledniho radku
iMaxRad.
Pak tam je jeden radek prikazu, ktery cosi dela, pricemz to vzdy provadi na
i-tem radku.
Samozrejme, ze tento radek by mohl byt napsan i jinak:
Cells(i,7) = Cells(i,2).Comment.Text
anebo
Range("G:" & i) = Range("B:" & i).Comment.Text nebo dalsimi zpusoby, zalezi na vkusu
Next je systemove slovo, ktere vraci cyklus zpatky na
For a to az do te doby, nez
i dosahne posledniho radku
iMaxRad. Anebo nez narazi na tzv. opustak cyklu
exit for, ale to tady nemame. Neni to tak tezky, ze ne?
citovat