Kłopotliwe tworzenie pętli

0

Cześć! Chciałbym utworzyć proste makro, niestety mam z tym problem i żadne poradniki dot. tworzenia pętli nie potrafią mi pomóc (albo jestem ułomny...)

W trzech kolumnach mam odpowiednio: imiona, drugie imiona "F", nazwiska "E". Chciałbym drugie imiona (jeżeli występują) zastąpić nazwiskiem. I świetnie działa do tego komenda:

If Range("F1") <> "" Then Range("E1").Value = Range("F1").Value

Problem jest taki, że kompletnie nie wiem, jak powtórzyć ją na kilkuset wierszach, tym bardziej, że drugie imię występuję tylko kilka razy spośród tych kilkuset wierszy (ale nie jestem w stanie przewidzieć ile razy i w jakim wierszu wystąpi)

1

Zrób pętlę na wszystkie wiersze i do niej wstaw swój if. Żeby odnosić się do komórki w aktualnych wierszu zamień Range("F1") na Range("F" & wiersz).

1

Możesz zmienić tez zdynamizować lastRow tak żeby za każdym razem obliczył ostatni wiersz.

For i=1 to lastRow
If Range("F"&i) <> "" Then Range("E"&i).Value = Range("F"&i).Value
Next i
0

@Ales: Problem w tym, że jestem kompletnie zielony w robieniu pętli i jak korzystam z jakiegokolwiek poradnika, to zrobiona pętla nie działa mi z tą komendą... Jesteś w stanie podać jakiś przykład?

0

@malkrzysztof podał gotowe rozwiązanie, wystarczy przypisać do lastRow numer ostatniego wiersza

0

@malkrzysztof podał gotowe rozwiązanie, wystarczy przypisać do lastRow numer ostatniego wiersza

0

@Ales: Okej, a co w przypadku, gdy nie mam pojęcia który wiersz będzie ostatni? Chciałbym, żeby plik przerabiał się automatycznie, a niektóre z nich mogą mieć 50, a inne 300 wierszy

1

lastRow = Range("e1").End(xlDown).Row

0

Dziękuję wszystkim, wreszcie działa :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1