Jak określić liczbę wierszy w danych i użyć tej wartości do zdefiniowania zakresu

0

W moim makrze jest linia:

Selection.AutoFill Destination:=Range("A2:A86893")

ale końcowa liczba komórek (86893), czyli całkowita liczba wierszy w moich danych, powinna być zmieniana przy każdym uruchomieniu makra. Potrzebuję tego makra, ponieważ moja ilość danych rośnie co, ale do tej pory musiałem ręcznie zmieniać adres.

Czy można wstawić formułę zamiast numeru komórki do definicji zakresu, coś w stylu:

A2:A(counta(b:b))

gdzie wzór counta(b:b)daje mi całkowitą liczbę wierszy.

senefro
źródło

Odpowiedzi:

0

Tak, po prostu musisz skonstruować ciąg, który poda adres zakresu. W twoim przypadku możesz zrobić coś takiego:

Range("A2:A" & CStr(Evaluate("=CountA(B:B)"))

Aby zdefiniować zakres, który chcesz wypełnić.

Jako dodatkowe słowo porady naprawdę powinieneś unikać używania opcji Select-statements podczas definiowania zakresów. Wypróbuj to, aby uzyskać interesującą lekturę.

eirikdaude
źródło
0

Aby znaleźć ostatnią wartość w swoim zakresie, użyj tego prostego fragmentu -

Dim lrow As Integer
lrow = Cells(Rows.Count, "B").End(xlUp).Row

Teraz możesz używać go w swoim zasięgu jak Range("A2:A"&lrow)

Raystafarian
źródło