VBA UsedRange - Jak znaleźć liczbę używanych wierszy i kolumn?

Spisie treści

UsedRange, jak sama nazwa wskazuje, to zakresy, które jako jakieś wartości w nich, puste komórki nie są zawarte w używanych zakresach, więc w VBA Used range jest właściwością obiektu range w VBA dla tych zakresów komórek w wiersze i kolumny, które nie są puste i zawierają pewne wartości.

UsedRange w VBA Excel

UsedRange w VBA jest właściwością arkusza, która zwraca obiekt zakresu reprezentujący używany zakres (wszystkie komórki Excela użyte lub wypełnione w arkuszu) w określonym arkuszu. Jest to właściwość reprezentująca obszar pokryty lub ograniczony przez lewą górną komórkę używaną i ostatnio używaną komórkę po prawej w arkuszu.

Możemy opisać „Użytą komórkę” jako komórkę zawierającą dowolną formułę, formatowanie, wartość itp. Możemy również wybrać ostatnio używaną komórkę, naciskając klawisze CTRL + END na klawiaturze.

Poniżej znajduje się ilustracja UsedRange w arkuszu:

Na powyższym zrzucie ekranu widać, że UsedRange to A1: D5.

Przykłady właściwości UsedRange programu Excel VBA

Spójrzmy na kilka poniższych przykładów, aby zobaczyć, jak można użyć właściwości UsedRange w arkuszu do znalezienia używanego zakresu w języku VBA:

Przykład 1

Powiedzmy, że mamy plik Excela zawierający dwa arkusze i chcemy znaleźć i wybrać używany zakres w arkuszu Sheet1.

Zobaczmy, co zawiera Sheet1:

W celu wykonania tego zadania używamy właściwości UsedRange w oknie VBA Immediate. Bezpośrednie okno VBA to narzędzie, które pomaga uzyskać informacje o plikach Excela, szybko wykonać lub debugować dowolny kod VBA, nawet jeśli użytkownik nie pisze żadnych makr. Znajduje się w Edytorze Visual Basic i można uzyskać do niego dostęp w następujący sposób:

  • Przejdź do zakładki Deweloper Excel, a następnie kliknij Edytor Visual Basic lub naciśnij Alt + F11, aby otworzyć okno Edytora Visual Basic.

Robiąc to, otwiera się okno w następujący sposób:

  • Naciśnij Ctrl + G, aby otworzyć bezpośrednie okno, i wpisz kod.

Najbliższe okno wygląda następująco:

  • Poniższy kod wybierze używany zakres w Sheet1.

Kod:

? Arkusze („Sheet1”). Aktywować True? ActiveSheet.UsedRange.Select True

Pierwsza instrukcja kodu aktywuje Sheet1 pliku, a druga instrukcja wybierze używany zakres w tym aktywnym arkuszu.

Pisząc ten kod, widzimy, że zakres używany w Sheet1 jest wybierany w następujący sposób:

Przykład nr 2

Powiedzmy, że w tym przykładzie chcemy znaleźć całkowitą liczbę wierszy użytych w arkuszu Sheet1.Aby to zrobić, wykonaj następujące czynności:

  • Utwórz nazwę makra w module.

Kod:

Sub TotalRows () End Sub
  • Zdefiniuj zmienną TotalRow jako Integer w VBA:

Kod:

Sub TotalRows () Dim TotalRow As Integer End Sub
  • Teraz przypisz zmienną TotalRow z formułą, aby obliczyć całkowitą liczbę wierszy:

Kod:

Sub TotalRows () Dim TotalRow As Integer TotalRow = ActiveSheet.UsedRange.Rows.Count End Sub
  • Teraz wynikową wartość TotalRow można wyświetlić i zwrócić za pomocą okna komunikatu VBA (MsgBox) w następujący sposób:

Kod:

Sub TotalRows () Dim TotalRow As Integer TotalRow = ActiveSheet.UsedRange.Rows.Count MsgBox TotalRow End Sub
  • Teraz uruchamiamy ten kod ręcznie lub naciskając klawisz F5 i otrzymujemy całkowitą liczbę wierszy używanych w arkuszu Sheet1 wyświetlaną w oknie komunikatów w następujący sposób:

Tak więc na powyższym zrzucie ekranu widzimy, że w oknie komunikatu zwracana jest cyfra „5”, a jak widać na arkuszu Sheet1, całkowita liczba wierszy w używanym zakresie wynosi 5.

Przykład nr 3

Podobnie, jeśli chcemy znaleźć całkowitą liczbę kolumn użytych w Sheet1, wykonamy te same kroki, co powyżej, z wyjątkiem niewielkiej zmiany w kodzie w następujący sposób:

Kod:

Sub TotalCols () Dim TotalCol As Integer TotalCol = ActiveSheet.UsedRange.Columns.Count MsgBox TotalCol End Sub

Teraz, gdy uruchamiamy ten kod ręcznie lub naciskając klawisz F5, otrzymujemy całkowitą liczbę kolumn użytych w arkuszu Sheet1 wyświetlaną w oknie komunikatów w następujący sposób:

Tak więc w oknie komunikatu zwracana jest wartość „4”, a jak widać w Arkuszu1, całkowita liczba kolumn w używanym zakresie wynosi 4.

Przykład 4

Teraz powiedzmy, że chcemy znaleźć ostatnio używany numer wiersza i kolumny w Sheet2 pliku. Zobaczmy, co zawiera Sheet2:

Aby to zrobić, postępujemy zgodnie z poniższymi krokami:

  • Utwórz nazwę makra w module.

Kod:

Sub LastRow () End Sub
  • Zdefiniuj zmienną LastRow jako Integer.

Kod:

Sub LastRow () Dim LastRow As Integer End Sub
  • Teraz przypisz zmienną LastRow z formułą do obliczenia ostatnio używanego numeru wiersza:

Kod:

Sub LastRow () Dim LastRow As Integer LastRow = ActiveSheet.UsedRange.SpecialCells (xlCellTypeLastCell) .Row End Sub

Metoda SpecialCells w programie Excel VBA zwraca obiekt zakresu, który reprezentuje tylko określone typy komórek. Składnia metody SpecialCells jest następująca:

RangeObject.SpecialCells (typ, wartość)

W powyższym kodzie xlCellTypeLastCell: reprezentuje ostatnią komórkę w używanym zakresie.

Uwaga: „xlCellType” będzie zawierać nawet puste komórki, w których zmieniono domyślny format dowolnej z ich komórek.
  • Teraz wynikową wartość numeru LastRow można wyświetlić i zwrócić za pomocą okna komunikatu (MsgBox) w następujący sposób:

Kod:

Sub LastRow () Dim LastRow As Integer LastRow = ActiveSheet.UsedRange.SpecialCells (xlCellTypeLastCell) .Row MsgBox LastRow End Sub
  • Teraz uruchamiamy ten kod ręcznie lub naciskając klawisz F5, i otrzymujemy numer ostatnio używanego wiersza w Sheet2 wyświetlany w oknie komunikatów w następujący sposób:

Tak więc na powyższym zrzucie ekranu widzimy, że w oknie komunikatu zwracana jest cyfra „12”, a jak widać w Sheet2, ostatnio używany numer wiersza to 12.

Podobnie, jeśli chcemy znaleźć ostatnio używany numer kolumny w Sheet2, wykonamy te same kroki, co powyżej, z wyjątkiem niewielkiej zmiany w kodzie w następujący sposób:

Kod:

Sub LastCol () Dim LastCol As Integer LastCol = ActiveSheet.UsedRange.SpecialCells (xlCellTypeLastCell) .Column MsgBox LastCol End Sub

Teraz, gdy uruchamiamy ten kod ręcznie lub naciskając klawisz F5, otrzymujemy numer ostatnio używanej kolumny w Sheet2 wyświetlany w oknie komunikatów w następujący sposób:

Tak więc na powyższym zrzucie ekranu widzimy, że w oknie komunikatu zwracana jest cyfra 3, a jak widać w Sheet2, ostatnio użyta kolumna to 3.

Rzeczy do zapamiętania o VBA UsedRange

  • VBA UsedRange to zakres prostokątów.
  • VBA UsedRange obejmuje komórki zawierające dowolne dane lub formatowane itp.
  • Excel VBA UsedRange niekoniecznie zawiera lewą górną komórkę arkusza.
  • UsedRange niekoniecznie uznaje aktywną komórkę za używaną.
  • UsedRange można użyć do znalezienia ostatnio używanego wiersza w VBA i zresetowania używanego zakresu itp.
  • Naciskając klawisze skrótu programu Excel CTRL + SHIFT + ENTER na klawiaturze, można rozszerzyć zaznaczenie z aktywnej komórki do ostatnio używanej komórki w arkuszu.

Interesujące artykuły...