Otrzymuję błąd przepełnienia, gdy próbowałem użyć tej funkcji
ActiveSheet.UsedRange.Rows.Count
w VBA Excel
Odpowiedzi:
6 dla odpowiedzi № 1Zakładam, że masz coś takiego:
Dim x as Integer
x = ActiveSheet.UsedRange.Rows.Count
Aby to naprawić, zmień go na:
Dim x as Long
x = ActiveSheet.UsedRange.Rows.Count
Lub
Dim x&
x = ActiveSheet.UsedRange.Rows.Count
Znak deklaracji typu ampersand (&) reprezentuje Long
Typy danych Integer i Long mogą jednocześnie działaćwartości dodatnie lub ujemne. Różnica między nimi to ich wielkość: zmienne całkowite mogą zawierać wartości od -32 768 do 32 767, natomiast zmienne długookresowe mogą wynosić od -2,147,483,648 do 2 147 483 647
Ponieważ arkusze programu Excel mogą mieć więcej niż 32 767 wierszy, nie można tego zrobić ZAWSZE dopasuj liczbę wierszy do liczby całkowitej i użyj wartości Long.
0 dla odpowiedzi nr 2
Czy zdefiniowałeś swoją zmienną jako liczbę całkowitą, a nie długą lub zmienną? Jeśli jest ich więcej niż 32256 lub coś w tym rodzaju, to jest zbyt duży, aby być liczbą całkowitą.