Mam arkusz z 70.000 wierszy danych i prostego makra, które liczy się jako całkowitą liczbę wierszy:VBA Integer Overflow przy 70.000
Dim LastRow as Integer
LastRow = SourceSheet.Cells.Find(what:="*", searchdirection:=xlPrevious, searchorder:=xlByRows).Row
MsgBox (LastRow)
ta zwraca błąd przepełnienia. Zmiana LastRow na Long zwraca poprawną wartość 70 000.
Zgodnie z Microsoft's website, liczba całkowita VBA powinna być w stanie utrzymać wartości między -2,147,483,648 i 2 147 483 647. Moje wyniki są w tym zakresie, więc dlaczego miałoby to zawieść?
Dzięki!
Gah! Oczywiście patrzyłem na niewłaściwą stronę. Dzięki za szybką odpowiedź. +1 – DixieFlatline
@DixieFlatline Tylko FYI, Możesz także uzyskać dostęp do ostatniego wiersza w dowolnym momencie przez SourceSheet.UsedRange.Rows.Count i ostatnia kolumna SourceSheet.UsedRange.Columns.Count – MatthewD
Dzięki za napiwek! Porównałem to z metodą, z której korzystałem i zauważyłem, że moja liczy tylko wiersze z danymi, a twoje zlicza również wiersze z formatowaniem. – DixieFlatline