Błąd występuje w 2. zakresie odniesienia w recct
. Ponieważ odwołujesz się do innego arkusza, musisz powiedzieć VBA nazwę arkusza w obu odniesieniach do zakresu.
Spróbuj to zamiast:
With ThisWorkbook.Sheets("Sheet1")
recct = .Range("B2", .Range("B2").End(xlDown)).Rows.Count
End With
Alternatywnie, to będzie działać, jak również (choć nieco sloppier).
recct = ThisWorkbook.Sheets("Sheet1").Range("B2", ThisWorkbook.Sheets("Sheet1").Range("B2").End(xlDown)).Rows.Count
Aktualizacja
Ponieważ istnieje wiele dyskusji wokół tego, co właściwie znaczy przez liczbę wierszy w arkuszu, należy użyć powyższy kod dosłownie zaczynają się B2 i policzyć liczbę sąsiadujących komórek bezpośrednio pod
Jednakże, jeśli chcesz znaleźć ostatnią „prawdziwą” używaną komórkę w kolumnie B (za prawdziwe, to znaczy z danych w nim) to zrobić:
With ThisWorkbook.Sheets("Sheet1")
recct = .Range("B2", .Range("B" & .Rows.Count).End(xlUp)).Rows.Count
End With
Dzięki Scott Holtzman Wypróbowałem twój kod i to działa. Dzięki jeszcze raz. i każdego, kto skomentował. –
Prawdopodobnie dostałeś więcej, niż się spodziewasz, popiołu! Ale witam w SO. Wspaniale jest móc się uczyć tak szybko. Biorąc pod uwagę wszystkie poniższe odpowiedzi, w zależności od tego, które z nich najlepiej pasuje do Twoich potrzeb, zaznacz je jako zaakceptowane, klikając pusty znacznik wyboru pod nim. Pomoże to w przyszłości innym, którzy najlepiej Ci pomogli. –